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.1
- 回答日時:
Excel 2004 の Visual Basic ヘルプ内、Dir 関数の記述です。
> Windows の場合、複数のファイルを指定するための "*" (アスタリスク) および "?" (疑問符)
のワイルドカード文字を使用できます。Macintosh の場合、これらの文字は有効なファイル名
の文字として扱われるため、このワイルドカード文字を使用して複数ファイルを指定すること
はできません。
ということで、仕様のようです。
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)だとフォルダ内のファイル全て検索する必要がでてきますけど、
問題無いレベルです。
ありがとうございました。
お探しの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ランキング
-
onedriveの中身を削除したらパ...
-
Windows10 フォルダ内の自動並...
-
macのdmgファイル(動画)をMP4...
-
mrl→midファイルへ
-
Windows11 でのファイル削除
-
office365 ファイルを削除したい
-
MGRファイルは消して良いのか
-
バッチファイルで変数の中身を...
-
exFATに欠点はありますか?
-
WMP12のトラック番号編集...
-
tarの中のtarを閲覧するには。。
-
mac ファイルの詳細情報を編集...
-
スマホのLINEはファイル共有ソ...
-
分割されたrarファイルを結合す...
-
リナックスの特殊ファイル「ソ...
-
スマートフォンを警察が解析、復元
-
Puppy Linuxの個人保存ファイル...
-
Excellにて→ファイルエラー:デ...
-
.tmp.mp4と.mp4の違い
-
クラリスワークスのファイルを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
onedriveの中身を削除したらパ...
-
同期センターのマークが出てま...
-
バッチファイルで変数の中身を...
-
コマンドプロンプトによるフォ...
-
Windows10 フォルダ内の自動並...
-
教えてください!困ってます。
-
ファイルの先頭行を全て削除したい
-
emlをtxtに変換するには?
-
ファイルの単位
-
Windows11 でのファイル削除
-
クラリスワークスのファイルを...
-
Excellにて→ファイルエラー:デ...
-
office365 ファイルを削除したい
-
macのdmgファイル(動画)をMP4...
-
mac ファイルの詳細情報を編集...
-
ファイル操作(削除など…)の履...
-
linuxのエディタgeditは複数フ...
-
BAKファイルを非表示にする方法
-
mac 表示できなくなりました。
おすすめ情報