昨日からの続きです。プログラムとサンプルデータの準備は昨日のブログを見て下さい。昨日の記事を読まれていない方は、昨日の記事から先にお読み下さい。
下図の様に、シート画面とプログラムが表示している画面を並べて下さい。準備が出来ましたら、Module 1の1番目のプログラム「Sub ファイルを順番に開いてファイル名とその中身を表示する()」を実行してみましょう。
下図の様に、ファイル名(ブック名)とファイルの中身(各ファイルのA1セルの値)が「Sheet1」に表示されました。ファイルの中身が表示された部分はバックが白色になりましたが、これは、またの機会にご説明したいと思います。上図、プログラムのご説明をします。次に進みます。
赤枠(特定のフォルダーに入れたファイル(ブック)を順番に拾い出す命令文)とオレンジ枠(ファイルを開く命令文)の処理は昨日ご説明しました。次に進みます。
青枠の部分は、(次のWith、End Withは解りやすくするため記載)
Dim セル範囲 As Range ← これは青枠で囲んでいません
With 対象ブック.Worksheets(1)
Set セル範囲 = .Range(.Cells(1, 1), .Cells(1, 1))
セル範囲.Copy
End With
A1セルを特殊変数により「名前」を「セル範囲 」と名付け、それをコピーしています。
茶色枠の「With ThisWorkbook.Worksheets(1)」~「End With」で上図「Sheet1」に対する処理を記述する部分を囲んでいます。(プログラムが記載されたこのブックの1番目のシートが対象)
紫枠がこのブックの1番目のシートのセルに、ファイル名(ブック名)とA1セルの中身を転記(貼り付け)するのと、
1番目、2番目、・・・と拾い出しては開き、データを転記(貼り付け)するセルの位置(行)を1行ずつ変える処理を行っています。(カウンター変数 = カウンター変数 + 1)の式により、行数が1つずつ大きくなります。
With 対象ブック.Worksheets(1)
.Range("B" & カウンター変数 + 1) = 対象ブック名
.Range("C" & カウンター変数 + 1).PasteSpecial xlPasteAll
End With
カウンター変数 = カウンター変数 + 1
2017年8月7日にプログラム「Sub ファイル結合_列可変版_複数ブックのシートを一つにまとめる()」を実行する記事を掲載しました。昨日と本日記載したプログラムを実用化したものです。
赤枠(特定のフォルダーに入れたファイル(ブック)を順番に拾い出す命令文)とオレンジ枠(ファイルを開く命令文)の組み合わせ方と、
青枠の「書き出し側の処理」 と 紫枠の「書き込まれる側の処理」をどのようにすればよいかが解れば、複数のファイル(ブック)は自由自在に取り扱い出来る様になります。微力ながら読者の方のプログラミングの一助になれば幸いです。
次回は、「Sub ファイル結合_列可変版_複数ブックのシートを一つにまとめる()」プログラムの技巧的な内容を記載予定です。お楽しみに。
読者の方へ。過去の記事をご覧になられていて、「画像」が上手く表示されない場合は、「hiro-yukioのサイト」の「過去のブログ記事」フォルダーにPDFで保存しましたのでこちらでご覧下さい。

