Step2 (このページ)は、Step1 の続きになっています。
VBAを使って複数の検索結果を表示させる方法について解説します。
Step1 を読まれた方 又は VBA でファイル検索する方法をすでに知っている方は、このままお読みください。Step1 の内容は割愛しておりますので、まだ Step1 を読まれていない方 又は 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:24
キーワードの設定
0:39
マクロボタンの設定
2:20
VBAの起動(Step2)
2:29
検索結果の表示
2:39
検索結果の正しさの確認
3:20
VBAの起動(クリア)
3:25
検索結果の削除
Step2(プロシージャ)の説明
①ファイルを開く
②ワークシートを入れ替える度に下記②-1 ~ ②-2を繰り返す
②-2検索結果を表示する
③ファイルを閉じる
コードの説明(Step2)
▼Step2 の ソースコードについてはこちらから入手してください
Step2のソースコード ← クリックすると入手できます
(グレー色はコードの抜粋。黒色は説明文です。)
※ Step1 → Step2 にかけての変更箇所については、
(変更箇所) ‘Step2
‘↓Step2
(変更箇所)
‘↑Step2
と表示しています。
検索できるように変数(MyRange)を設定
1個目のキーワードは、MyRange
2個目以降のキーワードは、MyRange2
で検索します
検索結果を並べて表示するための変数(i)を設定
処理速度が速くなるようにしています
ファイルを検索する時はファイルを開いたり閉じたりします
パソコンの裏側ではファイルの開閉は実行されるのですが、パソコンの表側ではファイルの開閉は表示されないようにしています
keyword = ThisWorkbook.Worksheets(1).range(“A2”)
A2 に 記載されたキーワードを使用しています
With ThisWorkbook.Sheets(1)
.Cells(i, “H”) = MyRange.Address(Rowabsolute:=False, columnabsolute:=False)
i = i + 1
End With
検索結果を、H列に表示
(メッセージボックスによる表示は中止しています)
2個目のキーワードの場所を検索
もし2個目のキーワードが存在する場合以下の処理を実行します
2個目以降のキーワードが存在する限り以下の処理を実行します
これは Do While文 と呼ばれる構文です
条件に合致する限り Do While (条件) ~ Loop の間に書かれた処理を実行し続けます
-
Do While (条件)
(処理内容)
Loop
With ThisWorkbook.Sheets(1)
.Cells(i, “H”) = MyRange2.Address(Rowabsolute:=False, columnabsolute:=False)
i = i + 1
End With
2つ目以降の検索結果をH列に表示
(メッセージボックスによる表示は中止しています)
検索する範囲を再度設定しています
‘MsgBox keyword & “はありません”
メッセージボックスによる検索結果の表示は中止しています
Set ~ As ~ のように、宣言している変数は、処理の最後で中身を空にします
これを実行しておくことで思わぬエラーを回避しています。
ファイルの開閉が表示されるようにしています
処理の最後で初期設定に戻しています
(初期設定:True → 処理の最初:Flase → 処理の最後:True)
処理が終了したときに、メッセージボックスで表示します
Step2 (このページ)では、複数の検索結果を表示させる方法について説明しました
Do While ~ Loop 構文により、キーワードが見つからなくなるまで検索することができます
次の Step3 では複数のワークシートについて検索する方法について解説します
おすすめ書籍
おすすめの書籍①(初級編)
ググってもVBAのことを調べることはできますが断片的な情報が多いです
この本で全体像を理解しておくとググったときに断片的な情報を補完してくれるのでより理解できるようになります
おすすめ書籍②(中級編)
メソッド&プロパティをたくさん知っているとできることは多くなっていきます
ただし全て使えるとは限りませんよね
「自分がしたいこと」を実現するために知っておくべきメソッド&プロパティを無駄なく調べることができ効率よくメソッド&プロパティを習得できます
おすすめ書籍③(上級編)
かなりボリュームはありますがとても読みやすいです
1章から順番に読んでいくことでVBAの構造が理解できるようになっています
読み終えるまでとても時間がかかりましたがとてもためになりました
VBAは作った後のメンテナンスが重要なのですが、この本を読むと
とてもメンテナンスのしやすいコードがかけるようになります
コメント