
『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。
仕事の改善や個人的な知識向上に役立ててください(^o^)
第26回目の今回は
VBAを使って、フォルダの中のエクセルブック一覧を作成する方法
について解説していきますので、よろしくお願いします。
これまでのVBAに関する記事は、下記のINDEXを参照してくださいね。
↓サブログ内部リンク(VBA用INDEX)↓
-
-
目次
Excel VBA講座-目次(INDEX)
サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 スラスラ読めるExcel VBA ...
続きを見る
|
『Dir』関数について
フォルダの中の一覧を取得したい場合は、『Dir』関数を使用します。一覧からある指定したエクセルを開くことができるなど、応用して使用すると非常に便利です。
構文
Dir([Pathname],[Attributes])
Pathname:ファイル名を表す文字列式を指定しるか、検索するファイルの保存場所を指定します。 引数 PathName に指定した内容が見つからないときは、長さ 0 の文字列 (" ") を返します。
Attributes:指定すると特定のファイルのみの抽出ができる。省略すると標ファイルの属性となります。(下表参照)
定数 | 値 | 内容 |
vbNormal | 0 | 標準ファイル(省略時) |
vbReadOnly | 1 | 読み取り専用ファイル |
vbHidden | 2 | 隠しファイル |
vbSystem | 4 | システムファイル(Macintoshでは使用できません) |
vbVolume | 8 | ボリュームラベル(Macintoshでは使用できません) |
vbDirectory | 16 | フォルダ |
vbAlias | 64 | エイリアスファイル(Macintoshでのみ使用できます) |
サンプルコード
下図のようなCドライブ直下の『VBA』ファイルの中の『エクセル一覧』内にあるエクセルファイル(.xlsx)を抽出するコードです。
---------------------------------------------------------------------------
Sub 一覧抽出()
Dim file As String
’ファイルを[String]型の変数とする。
Dim a As Integer
’"a"を[Integer]型の変数とする。
file = Dir("C:\VBA\エクセル一覧\*.xlsx")
’"抽出するフォルダ、及び拡張子を指定し、対象のファイルを変数”file”に抽出します。(★)
※.xlsxの拡張子分を抽出するため、拡張子の前は*(アスタリスク)を使用します。
a = 2
’"a"に2を代入します。
Do While file <> ""
’"file"がある場合は処理を実行します。(▲)
Cells(a, 1).Value = file
’A列のaセルにfile(抽出したエクセル名)を書き出します。
file = Dir()
’★と同じ条件でファイル名を検索します。
a = a + 1
’aに1を足します。(入力箇所を1行下に下げる)
Loop
’処理を繰り返します。(▲に戻る)
End Sub
'終了!!
---------------------------------------------------------------------------
上記のプログラムを実行すると・・・・・
↓
フォルダ内のエクセルファイル(.xlsx)が抽出されます。

下のVBA講座も是非ご覧下さい!!
関連
前回のVBA講座(第25回)
同じキーワードを続けて検索する方法【VBA入門講座#25】
関連
次回のVBA講座(第27回)