ファイル ドライブフォルダファイル関連一式
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Sub Test0() Dim MyFile, MyPath, MyName ' "WIN.INI" が存在する場合、そのファイル名を返します(Microsoft Windows の場合)。 MyFile = Dir("C:\WINDOWS\WIN.INI") ' 指定した拡張子を持つファイル名を返します。複数の *.INI ファイル ' が存在すると、最初に見つかったファイル名を返します。 MyFile = Dir("C:\WINDOWS\*.INI") ' 引数を指定せずに再度 Dir 関数を呼び出すと、 ' 同じフォルダにある次の *.INIファイルを返します。 MyFile = Dir ' 隠しファイル属性を持つ *.TXT ファイルであり、最初に見つかったファイル名を返します。 MyFile = Dir("*.TXT", vbHidden) ' C:\ 内のフォルダの名前を表示します。 MyPath = "c:" ' パスを設定します。 MyName = Dir(MyPath, vbDirectory) ' 最初のフォルダ名を返します。 Do While MyName <> "" ' ループを開始します。 ' 現在のフォルダと親フォルダは無視します。 If MyName <> "." And MyName <> ".." Then ' ビット単位の比較を行い、MyName がフォルダかどうかを調べます。 If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then Debug.Print MyName ' フォルダであれば、それを表示します。 End If End If MyName = Dir ' 次のフォルダ名を返します。 Loop End Sub Sub Test1() 'CurDir[(drive)] '引数 drive は省略可能です。引数 drive には、ドライブを示す文字列式を指定します。 '引数 drive を省略した場合、または長さ 0 の文字列 (" ") を指定した場合は、 '現在のドライブのパスを返します。 Dim MyPath As Variant '指定したドライブの現在のパスの値を返します MyPath = CurDir() MsgBox MyPath End Sub Sub test2() 'ChDrive drive '引数 drive は必ず指定します。 '引数 drive には、ドライブを示す文字列式を指定します。 '引数 drive に長さ 0 の文字列 (" ") を指定したときは、 '現在のドライブは変更されません。 '引数 drive に 2 文字以上の文字列を指定した場合、 '最初の 1 文字だけが使用されます。 '現在のドライブを変更 ChDrive "D" Dim MyPath As Variant '指定したドライブの現在のパスの値を返します MyPath = CurDir() MsgBox MyPath End Sub Sub Test3() 'ChDir Path '引数 path は必ず指定します。 '引数 path には、新しく設定するフォルダを表す文字列式を指定します。 '引数 path には、既定のドライブ名が含まれています。 'ドライブ名を省略してフォルダを指定すると、 'ChDir ステートメントは現在のフォルダを現在のドライブの該当するフォルダに変更します。 'ChDir ステートメントを使用すると、フォルダを変更できます。 'ただし、ドライブは変更されません。 'たとえば、現在のドライブが C のとき、 '次に示すステートメントは、D ドライブのフォルダを変更しますが、 '現在のドライブは C のまま変更されません。 ChDir "D:\移動先" Dim MyPath As Variant '指定したドライブの現在のパスの値を返します MyPath = CurDir() MsgBox MyPath End Sub Sub Test4() 'ユーザーからファイル名を取得するために、[ファイルを開く] ダイアログ ボックスを '表示します。ダイアログ ボックスで指定したファイルは、実際には開かれません。 'expression.GetOpenFilename(◆FileFilter, ◆FilterIndex, ◆Title, ◆ButtonText, ◆MultiSelect) 'expression 必ず指定します。 '対象となる Application オブジェクトを表すオブジェクト式を指定します。 '◆FileFilter 省略可能です。 'バリアント型 (Variant) の値を使用します。 '開くファイルの種類を指定する文字列 (ファイル フィルタ文字列) を指定します。 'ファイル フィルタ文字列とワイルドカードのペアを、必要な数だけ指定します。 'ファイル フィルタ文字列とワイルドカードはカンマ (,) で区切り、 '各ペアもカンマで区切って指定します。 '各ペアは、[ファイルの種類] ボックスのリストに表示されます。 '次にテキスト ファイルとアドインの 2 つのファイル フィルタを指定します。 '"テキスト ファイル (*.txt),*.txt,アドイン ファイル (*.xla),*.xla" '1 つのファイル フィルタ文字列に複数のワイルドカードを対応させるには、 '次のように各ワイルドカードをセミコロン (;) で区切ります。 '"Visual Basic ファイル (*.bas; *.txt),*.bas;*.txt" 'この引数を省略すると "すべてのファイル (*.*),*.*" を指定したことになります。 '◆FilterIndex 省略可能です。 'バリアント型 (Variant) の値を使用します。 '引数 FileFilter で指定したファイル フィルタ文字列の中で、 '最初の 1 から何番目を既定値とするかを指定します。 'この引数を省略するか、引数 FileFilter に含まれる 'ファイル フィルタ文字列の数より大きい数値を指定すると、 '最初のファイル フィルタ文字列が既定値となります。 '◆Title 省略可能です。 'バリアント型 (Variant) の値を使用します。 'ダイアログ ボックスのタイトルを指定します。 'この引数を省略すると "ファイルを開く" になります。 '◆ButtonText 省略可能です。 'バリアント型 (Variant) の値を使用します。Macintosh のみ指定できます。 '◆MultiSelect 省略可能です。 'バリアント型 (Variant) の値を使用します。 'True を指定すると、複数のファイルを選択できます。 'False を指定すると、1 つのファイルしか選択できません。既定値は False です。 'GetOpenFilename メソッドは、ユーザーによって選択、 'または入力したファイルの名前とパス名を返します。 '引数 MultiSelect が True の場合は、 '選択したファイルの名前の配列が返されます。 '選択されたファイルが 1 つでも、配列として返されます。 '入力が取り消された場合には False が返されます。 'このメソッドを実行することによってカレント ドライブや '現在のフォルダが変更される可能性があります。 Dim x As Variant x = Application.GetOpenFilename '("すべてのファイル(*.*), *.*") MsgBox x End Sub |