特定のフォルダーに入れたファイルを順番に開く方法2回目 ← ファイル名と中身を一覧表にする! | 50歳からのエクセルプログラミング

50歳からのエクセルプログラミング

ブログでお伝えしたい事は、プログラムを使うと著しく業務効率が上がると言う事です。興味がある方はプログラムを動かしてその素晴らしさを体感して下さい。無限の可能性を秘めたプログラミングの世界をご紹介して参ります。

 昨日からの続きです。プログラムとサンプルデータの準備は昨日のブログを見て下さい。昨日の記事を読まれていない方は、昨日の記事から先にお読み下さい。

 下図の様に、シート画面とプログラムが表示している画面を並べて下さい。準備が出来ましたら、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で保存しましたのでこちらでご覧下さい。

hiro-yukioのサイト