
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【VBA】ファイルパスに半角スペースが入ると、VBAが動かない
Excel(エクセル)
-
VBA で、スペースを含むファイル名をコピーしたい。
Excel(エクセル)
-
お助けください!VBAのファイル名エラーについて
Visual Basic(VBA)
-
-
4
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
5
Excelマクロのエラーを解決したいです。
Visual Basic(VBA)
-
6
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
7
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
8
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
9
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
10
ドロップダウンリスト 自動表示したい
Excel(エクセル)
-
11
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
12
2画面表示でのVBAのボタン押下後のform表示の位置
Excel(エクセル)
-
13
コマンドボタンを押すたびに大きくなってしまう
Excel(エクセル)
-
14
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
15
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
16
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
17
VBAで配列の計算
Excel(エクセル)
-
18
Accessのコマンドボタンの立体化について
Access(アクセス)
-
19
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトでファイル...
-
[DOS] コピー先に同じファイル...
-
DOSのバッチ作成について‐FORの...
-
word VBA ファイル名 保存
-
コマンドプロンプトで変数が数...
-
バッチにて複数のcsvファイルを...
-
フォルダ内の更新日時が一番新...
-
バッチファイルで、iniファイル...
-
Visual C++ 2008 Express Editi...
-
サブフォルダからファイルをコ...
-
xlsファイルをxlsmファイルに変...
-
【vbs】ファイル名の検索と該当...
-
エクセルのVBAについて とある...
-
コマンドプロンプトのエラーに...
-
大量のフォルダからひとつのフ...
-
チームズのチャット画面にファ...
-
Thunderbirdで社内共有フォルダ...
-
#include <Windows.h>というヘ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトでファイル...
-
バッチファイルで、iniファイル...
-
[DOS] コピー先に同じファイル...
-
ファイル名の頭5桁と同名のフォ...
-
コマンドプロンプトで変数が数...
-
ExcelVBAのDirでスペース含むフ...
-
サブフォルダからファイルをコ...
-
DOSのバッチ作成について‐FORの...
-
フォルダ内の更新日時が一番新...
-
バッチコマンドでファイル名の...
-
ExifToolでの文字化け対策
-
aタグのhrefにネットワークパス...
-
【DOSバッチ開発】末尾のタブの...
-
【vbs】ファイル名の検索と該当...
-
ファイル名に ” を使うと エク...
-
ファイル名の一部に年月日が入...
-
【バッチプログラム】フォルダ...
-
.batでファイル名から抽出して...
おすすめ情報