質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

2269閲覧

生成したtxtファイルのデータを1000行ずつ1000回ループして処理したいです

hirohisasato

総合スコア15

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/04/29 09:42

編集2018/10/24 02:04

Excelファイルの中は以下の3つのシートがあります。
シート名:txtデータ ・・・txtファイルのデータを100万行コピーペーストしたもの
シート名:判定 ・・・txtファイルのデータを計算し並び替えるもの
シート名:判定後データ ・・・判定シートで並び替えたデータをコピーペーストする
以下はそれぞれのシートの詳細と、マクロの詳細になります。
■シート名:txtデータ
||A|B|C|D|E|F|G|
|:--|:--:|--:|
|1|101|203|204|205|206|
|2|101|203|204|205|207|
|3|101|203|204|205|208|
|4|101|203|204|205|209|
|||||||||
|999999|134|219|221|222|223|
|1000000|134|220|221|222|223|
行5~行999998までは同様の内容が続き、省略してあります。
列Fと列Gは空欄になっています。txtファイルの中には列Fと列Gに値が入っているものも例外的にあります。
■シート名:判定
||A|B|C|D|E|F|G|H|・・・|AOO|AOP|
|:--|:--:|--:|
|1|
|2|
|3||||
|4|101|203|204|205|206|||数式|・・・|数式|1|
|5|101|203|204|205|207|||数式|・・・|数式|1|
|6|101|203|204|205|208|||数式|・・・|数式|1|
||||||||||・・・||~~|
|999|101|203|213|216|223|||数式|・・・|数式|1|
|1000|101|203|213|217|218|||数式|・・・|数式|1|
列I~列AONまでは数式が記述されており、省略してあります。
行7~行998までは同様の内容が続き、省略してあります。
列AOPは列A~列Gに入力されたデータをもとに、列H~列AOOで計算を行い、0か1で判定を行うものです。
■シート名:判定後データ
このシートは空の状態です。
■マクロの内容

順番シート名処理内容
1txtデータA1~G1000までをコピーする
2判定A4を選択、コピーしたデータをペーストする
3判定A4~AOP1003 までを選択する
4判定並び替え AOP昇順、A昇順、B昇順、C昇順、D昇順、E昇順、F昇順、G昇順
5判定AOP列の値が1の行のA~G列をコピーする
分岐:AOPの値が1の行がないときは処理7へスキップする
6判定後データA1を選択し、コピーしたデータをペーストする(ループ1回目以降は初回のデータの下の行に貼り付け)
7txtデータA1~G1000までを削除する(上方向へシフト)
81に戻る(1000回ループ)
9処理を終了する
処理量が多くてマクロが動かない場合も想定されます。また、逆に処理量を多くしたほうが効率が良い場合もあります。
順番1でコピーする行数を増減させてループ数を調整するなど、変更が容易なようにコメントを入れていただけると助かります。
なお、txtファイルのファイル数は26個あり、行数は合計で約9060万あります。
データが多すぎると動作が重くなることが想定されますので、100万行ずつシートにコピーする方法をとります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

勘違いされているのかもしれませんが、ここはプログラムを作ってもらうための場ではありません。
また(これは人によって見解の違いもあることを承知で書きますが)ここは技術者のための掲示板ですので「コーディングの仕方がわからない」といったレベルの質問も私はふさわしくないと思っています。

上記を踏まえて、今回の質問内容は不足している点が多すぎます。
まずは自分で手を動かしてできる範囲でコーディングを行い、行き詰った内容を質問したのなら多くの人が助言してくれるものと思います。

さしあたり処理の流れまでは考えられているようですので、まずはその操作をシート上で手操作で行ってみてはどうでしょうか。
その操作を「マクロの記録」でVBAコードにすることで、コーディング着手のとっかかりになると思います。

がんばってみてください。

投稿2018/05/01 04:33

jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2018/04/29 12:37

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そもそも、使うツールを間違っている。

投稿2018/05/20 13:29

kai_keitai

総合スコア344

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問