Step4 (このページ)は、Step3 の続きになっています。
VBAを使って、複数のファイルに対してキーワードを検索する方法について解説します
Step3 を読まれた方 又は VBA で複数のワークシートに対してキーワード検索する方法をすでに知っている方は、このままお読みください。Step1 ~ Step3 の内容は割愛しておりますので、まだ Step3 を読まれていない方 又は VBA で複数のワークシートに対するキーワード検索の方法を知りたい方は、先に下記のページを読まれることをお勧めします。
簡単な処理(検索のみ)~ 実用的な処理 までを Step1 ~ Step7 の 7段階に区切っています。
▼Step1 ~ Step7 の違い
Step | キーワード | フォルダ | ファイル | シート | 検索対象 |
---|---|---|---|---|---|
1 | 1つ | 1つ | 1つ | 1つ | 1つ |
2 | 1つ | 1つ | 1つ | 1つ | 複数 |
3 | 1つ | 1つ | 1つ | 複数 | 複数 |
4 | 1つ | 1つ | 複数 | 複数 | 複数 |
5 | 1つ | 複数 | 複数 | 複数 | 複数 |
6 | 複数 | 複数 | 複数 | 複数 | 複数 |
7 | 複数 | 複数 | 複数 | 複数 | 複数 |
※ Step6に(処理速度やエラー回避などの)機能を追加したものがStep7となります。
▼まずはどのようなことができるかについてこちらをご覧ください
動画の説明
0:00
検索対象のファイルの確認
0:46
フォルダの設定
2:48
キーワードの設定
2:53
マクロボタン(Step4)の作成
3:38
VBAを起動
3:44
検索結果の表示
4:04
検索結果の正しさの確認
5:23
検索結果の削除
Step4(プロシージャ)の説明
水色で囲まれている箇所 は、入れ替るファイルがなくなるまで繰り返します
青色で囲まれている箇所 は、入れ替るワークシートがなくなるまで繰り返します
ファイルを入れ替る
ファイルを開く
ワークシートを入れ替る
キーワードを検索する
検索結果を表示する
ファイルを閉じる
コードの説明(Step4)
▼Step4 の ソースコードについてはこちらから入手してください
Step4のソースコード← クリックすると入手できます
(グレー色はコードの抜粋。黒色は説明文です。)
※ Step3 → Step4 にかけての変更箇所については、
(変更箇所) ‘Step4
‘↓Step4
(変更箇所)
‘↑Step4
と表示しています。
Dim fl As folder
Dim files As files
Dim fso As Object
フォルダ内のファイルに対して検索できるようにするためこれらの変数を宣言
複数のファイルを扱うため path のデータ型を Variant型(バリアント)にします
Variant型(バリアント):
整数や文字列だけではなくどんな型も格納できる万能タイプのデータ型
Set fso = New FileSystemObject
Set fl = fso.GetFolder(“C:\Users\●●●●\Desktop\フォルダ1”)
Set files = fl.files
‘path = “C:\Users\●●●●\Desktop\フォルダ\Book1.xlsx”
‘filename = “Book1.xlsx”
●●●● の箇所は、お使いのPCによって異なります
フォルダに対して何かしらの処理(今回のようにフォルダ内のファイルを検索する等)を実行する場合、FileSystemObject(ファイルシステムオブジェクト)を使用します
fl の中にフォルダを格納し、files の中にフォルダ内のファイル全てを格納しています
検索対象ファイルを変更するたびに、検索処理を実行しています
▼ For ~ Next の間にある処理内容を繰り返し実行します
For Each path In files
(処理内容)
Next
F列に、ファイル名を表示させています
繰り返し処理の最初で開いたファイルを、繰り返し処理の最後で閉じています
上記For文の範囲の最後の位置を指定しています
Step4(このページ)では、複数のファイルに対してキーワードを検索する方法について説明しました
FileSystemObject(ファイルシステムオブジェクト)を使用することでフォルダに対する操作(今回のようにフォルダ内のファイルを検索する等)を可能にしています
次のStep5では複数のフォルダに対して検索する方法を解説します
おすすめ書籍
おすすめの書籍①(初級編)
ググってもVBAのことを調べることはできますが断片的な情報が多いです
この本で全体像を理解しておくとググったときに断片的な情報を補完してくれるのでより理解できるようになります
おすすめ書籍②(中級編)
メソッド&プロパティをたくさん知っているとできることは多くなっていきます
ただし全て使えるとは限りませんよね
「自分がしたいこと」を実現するために知っておくべきメソッド&プロパティを無駄なく調べることができ効率よくメソッド&プロパティを習得できます
おすすめ書籍③(上級編)
かなりボリュームはありますがとても読みやすいです
1章から順番に読んでいくことでVBAの構造が理解できるようになっています
読み終えるまでとても時間がかかりましたがとてもためになりました
VBAは作った後のメンテナンスが重要なのですが、この本を読むと
とてもメンテナンスのしやすいコードがかけるようになります
コメント