Excel X for Macでのマクロについての質問です。
特定のフォルダにあるファイルの存在を調べたいです。
変数Pathには検索対象のフォルダのフルパスが入っているとします。
zzz = Dir(Path & "Book*.xls")
if zzz = "" then
MsgBox "存在しない"
else
MsgBox "存在する"
End if
WindowsのExcel2003の場合、
上記で、変数Pathのフォルダに[Bookで始まるxlsファイル]が存在すれば、
「存在する」と表示されます。
Excel X for Macの場合、
上記コードでは仮に[Bookで始まるxlsファイル]が存在していても検索に引っかかりません。
どうやらワイルドカード[*]が使えないようなのですが、
Mac上のワイルドカードは * ではないのでしょうか。
ワイルドカードが使えない場合、
指定したフォルダの中から[Bookで始まるxlsファイル](=ファイル名が明確にはわかっていない)の存在を調べるようなコードを作るにはどうしたらよいでしょうか。
Excel X for Macでも、冒頭を、
zzz = Dir(Path & "Book1.xls")
と書き換えて実行した場合、
Book1.xlsがあれば「存在する」と表示されるので、検索のコード自体は間違っていないと思います。
No.2ベストアンサー
- 回答日時:
ちなみに Mac でも Like 関数による文字列比較ではワイルドカードが使えます。
そこで例えば
MyFileName = Dir(Path)
Do While MyFileName <> ""
zzz = MyFileName Like "Book*.xls"
If zzz = True Then
MsgBox "存在する"
Exit Do
End If
MyFileName = Dir()
Loop
If MyFileName = "" Then
MsgBox "存在しない"
End If
といったマクロを使えば、特定のフォルダの Book*.xls ファイルの有無を調べることができます。
回答ありがとうございます。
挙げていただいたLike関数でなんとかなりそうです。
MyFileName = Dir(Path)だとフォルダ内のファイル全て検索する必要がでてきますけど、
問題無いレベルです。
ありがとうございました。
No.1
- 回答日時:
Excel 2004 の Visual Basic ヘルプ内、Dir 関数の記述です。
> Windows の場合、複数のファイルを指定するための "*" (アスタリスク) および "?" (疑問符)
のワイルドカード文字を使用できます。Macintosh の場合、これらの文字は有効なファイル名
の文字として扱われるため、このワイルドカード文字を使用して複数ファイルを指定すること
はできません。
ということで、仕様のようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
onedriveの中身を削除したらパ...
-
教えてください!困ってます。
-
同期センターのマークが出てま...
-
コマンドプロンプトによるフォ...
-
VScodeでjarファイルを開く方法
-
emlをtxtに変換するには?
-
office365 ファイルを削除したい
-
バッチファイルからタスクスケ...
-
ファイルの先頭行を全て削除したい
-
バッチファイルで変数の中身を...
-
ショートカットアイコンと、元...
-
Excellにて→ファイルエラー:デ...
-
ファイルを開けると、
-
Windows10 フォルダ内の自動並...
-
ファイルの単位
-
信頼済みサイトの追加(レジス...
-
複数ファイルを一度に検索したい
-
mrl→midファイルへ
-
フォルダ内の一覧を印刷するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
onedriveの中身を削除したらパ...
-
同期センターのマークが出てま...
-
ファイルの先頭行を全て削除したい
-
バッチファイルで変数の中身を...
-
Windows10 フォルダ内の自動並...
-
クラリスワークスのファイルを...
-
教えてください!困ってます。
-
コマンドプロンプトによるフォ...
-
emlをtxtに変換するには?
-
ファイルの単位
-
macのdmgファイル(動画)をMP4...
-
office365 ファイルを削除したい
-
Excellにて→ファイルエラー:デ...
-
mrl→midファイルへ
-
大切なファイルが何故かウイル...
-
Windows11 でのファイル削除
-
exeファイルを無効化するには
-
VScodeでjarファイルを開く方法
-
フォルダ内の一覧を印刷するには?
おすすめ情報