
ExcelのVBAで、ファイルが存在するかを調べる為に以下のような記述をしました。
If Dir(filename) = "" Then Err.Raise errnumber
ここで、filenameに通常のファイル名が入る場合は問題ないのですが、filenameにスペースが含まれている場合、明らかにファイルが存在する場合でもErr.Raiseが呼ばれてしまいます。そこで、次の記述を上記のIf文の前に挿入してみました。
filename = """" & filename & """"
ファイル名を「"」で囲めば良いのでは、と考えたのですが、実行すると、
実行時エラー '52'
ファイル名または番号が不正です。
とのエラーが出てしまいます。このように、スペースを含む可能性があるファイル名に対してDir関数を使うにはどのようにすれば良いのでしょうか。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
Excel2010のVBAだと、dir関数は、ディレクトリ名に空白がある場合も、ファイル名に空白がある場合も、どらも正しくファイル名を返しますね。
例えば、Dir("C:\temp\a b\x y") とかで正しく "x y" を返します。
空文字列が返っているのであれば、やはりファイルが存在しないと言うことでしょう。
もういちど見直してください。
ご回答をいただいて、ファイルの読み込みではなくファイルの作成の方に問題があるのかも、と思って見直しました。今回のコードは、まずコマンドベースのプログラムを動かしてファイルを作成して、その後、作成されたファイルを開くコードの前に記述しているものなのですが、ファイルを作成する段階で、空白を含んだファイル名をそのままコマンドライン引数に渡していました。そこで、そちらを""で括るようにしたら解決できました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
このQ&Aを見た人はこんなQ&Aも見ています
-
【VBA】ファイルパスに半角スペースが入ると、VBAが動かない
Excel(エクセル)
-
VBA で、スペースを含むファイル名をコピーしたい。
Excel(エクセル)
-
お助けください!VBAのファイル名エラーについて
Visual Basic(VBA)
-
-
4
VB6 Dir関数で52エラー発生
Visual Basic(VBA)
-
5
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
6
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
UserForm1.Showでエラーになります。
工学
-
9
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
10
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
昨日まで動いていたエクセルのマクロが急に動かなくなりました
Excel(エクセル)
-
13
EXCELのcountif関数での大文字と小文字は区別できるのでしょうか
Excel(エクセル)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
17
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
18
InputBoxの入力値を半角数字のみと限定する方法
Excel(エクセル)
-
19
エクセルで空白を無視して一番左にあるセルを参照したい
Excel(エクセル)
-
20
マクロを実行すると画像がズレてしまいます
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトでファイル...
-
バッチファイルで、iniファイル...
-
コマンドプロンプトで変数が数...
-
フォルダ内の更新日時が一番新...
-
スタートアップのファイルをバ...
-
ファイル名の頭5桁と同名のフォ...
-
[DOS] コピー先に同じファイル...
-
ExcelVBAのDirでスペース含むフ...
-
aタグのhrefにネットワークパス...
-
【DOSバッチ開発】末尾のタブの...
-
.batでファイル名から抽出して...
-
ファイル名を一括してリネーム...
-
バッチファイルで同一フォルダ...
-
ftp処理でmove(移動)を行いたい
-
ファイル名を該当フォルダ内か...
-
サブフォルダからファイルをコ...
-
バッチにて複数のcsvファイルを...
-
画像フォルダをまとめるバッチ...
-
ファイル名を変更して移動させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
[DOS] コピー先に同じファイル...
-
コマンドプロンプトでファイル...
-
バッチファイルで、iniファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトで変数が数...
-
ExcelVBAのDirでスペース含むフ...
-
ファイル名の頭5桁と同名のフォ...
-
フォルダ内の更新日時が一番新...
-
サブフォルダからファイルをコ...
-
バッチコマンドでファイル名の...
-
access,vbaでフォルダ内のファ...
-
ファイル名を一括してリネーム...
-
スタートアップのファイルをバ...
-
VBA GetAttrについて教えてくだ...
-
aタグのhrefにネットワークパス...
-
【DOSバッチ開発】末尾のタブの...
-
.batでファイル名から抽出して...
-
word VBA ファイル名 保存
-
Windowsコマンドプロンプトで、...
おすすめ情報