第79回.ファイル操作Ⅰ(Dir)
VBAでは、フォルダのファイル一覧を取得したりファイルの存在確認をする事が出来ます、
Dir関数は、指定したパターン(ワイルドカード)やファイル属性と一致するファイルまたはフォルダの名前を表す文字列の値を返します。
引数に指定したファイルが存在すると、そのファイル名を返し存在しないと空欄を返します。
Dir関数
pathname | 省略可能です。 ファイル名を表す文字列式を指定します。 フォルダ名およびドライブ名も含めて指定できます。 引数 pathname に指定した内容が見つからないときは、長さ 0 の文字列 (" ") を返します。 |
attributes | 省略可能です。 取得するファイルが持つ属性の値の合計を表す数式または定数を指定します。 省略すると、標準ファイルの属性になります。 |
attributesの設定値
定数 | 内容 |
vbNormal | 標準ファイル |
vbReadOnly | 読み取り専用ファイル |
vbHidden | 隠しファイル |
vbSystem | システム ファイル。 Macintosh では使用できません。 |
vbVolume | ボリューム ラベル。この値を指定すると、すべての属性は無効になります。 Macintosh では使用できません。 |
vbDirectory | フォルダ |
vbAlias | エイリアス ファイル。 Macintosh でのみ使用できます。 |
複数のファイルを指定するための "*" または "?" のワイルドカードを使用できます。
フォルダ内のすべてのファイルに対して繰り返して処理を実行する場合は、
引数を指定せずにDir を実行してください。
Dir関数の使用例
変数 = Dir("C:\*.xls")
変数 = Dir("C:\", vbNormal + vbReadOnly + vbHidden)
Dir関数の実践例
変数 = Dir("C:\*.xls")
Do While 変数 <> ""
・・・
変数 =
Dir()
Loop
Cドライブ直下のエクセルファイルを全て取得しています。
注意
これら全てが対象となります。
Dir関数の制限について
・3桁拡張子の指定時の問題
・256バイトを超えるパス名が扱えない
・特殊なネットワークドライブでエラー
これらの問題に対する詳細な解説は、以下を参照してください。
Dir関数の制限について
Dir関数の関連記事
ファイル一覧を取得する(Do~LoopとDir関数)
同じテーマ「マクロVBA入門」の記事
第76回.ファイルダイアログ(FileDialog)
第77回.組み込みダイアログ(Dialogs,xlDialogPrint)
第78回.総合練習問題8
第79回.ファイル操作Ⅰ(Dir)
第80回.ファイル操作Ⅰ(その他)
第81回.総合練習問題9
第82回.RangeのResizeプロパティ
第83回.RangeのOffsetプロパティ
第84回.RangeのAddressプロパティ
第85回.結合セルの扱い
第86回.総合練習問題10
新着記事NEW ・・・新着記事一覧を見る
VBA100本ノック 61本目:「ふりがな」の取得と設定|VBA練習問題(1月6日)
VBA100本ノック 60本目:「株式会社」の表記ゆれ置換|VBA練習問題(1月5日)
VBA100本ノック 59本目:12ヶ月分のシートを四半期で分割|VBA練習問題(1月4日)
Select Caseでの短絡評価(ショートサーキット)の使い方|VBA技術解説(1月3日)
VBA100本ノック 迷宮編:巡回セル問題|VBA練習問題(12月31日)
VBA100本ノック 58本目:番号リストを簡潔にした文字列で返す|VBA練習問題(12月30日)
VBA100本ノック 57本目:ファイルの更新日時|VBA練習問題(12月29日)
VBA100本ノック 56本目:数式内の自身のシート名を消す|VBA練習問題(12月28日)
VBA100本ノック 55本目:他ブックのマクロを起動|VBA練習問題(12月26日)
VBA100本ノック 54本目:シートのChangeイベント|VBA練習問題(12月25日)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.繰り返し処理(Do Loop)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。