web-dev-qa-db-ja.com

ブック名にスペースが含まれている場合にExcelVBAでApplication.Runを使用する

Application.Run "MyWorkBook.xls!Macro1"

動作します(Macro1ファイルでMyWorkBook.xlsというマクロを実行します)。

Application.Run "My Work Book.xls!Macro1"

動作しません(ブック名にスペースが含まれている場合、Excelは「マクロが見つかりません」と表示します)。

私はちょうどそれがこの問題を引き起こしているスペースであることを理解するのに何時間も費やしました...

ファイルの名前を変更せずにこれを回避する方法はありますか?

11
Laurent

ファイル名を一重引用符で囲みます。

Application.Run "'My Work Book.xls'!Macro1"
22
e.James

各スペースを%20に置き換えます

Application.Run "My%20Work%20Book.xls!Macro1"
6
raymon

ここでFile_nameは、マクロを呼び出すファイルの名前です。

  • Application.run "'" + File_name + "'" + "!Macro"
  • 二重引用符の間に一重引用符が続き、その後に+ File_name +二重引用符の間に一重引用符+二重引用符の間にマクロ名が続きます。
1
Akshay Singh