次の方法で共有

[Excel] ブック名にシングルコーテーションを含むブックのマクロが実行できない

Anonymous
2016-02-01T09:58:06+00:00

あるブックから、他のブック内のマクロを実行する処理があります。

Book1.xlsm

Sub Run_Macro()

    Application.Run "'Book2.xlsm'!TargetMacro"

End Sub

Book2.xlsm

Sub TargetMacro()

    MsgBox ThisWorkbook.Name & "のTargetMacroが実行されました"

End Sub

上記サンプルコードで、Book1 の Run_Macro を実行した場合は正常に TargetMacro が動作します。

しかし、実際はには「Book2.xlsm」の部分は可変である必要があり、

実行時に変数で指定される造りとなっております。

その場合、ブック名にシングルコーテーションが含まれると以下のエラーが発生します。

(ブック名が Book'2.xlsm の場合)

実行時エラー '1004':

マクロ ''Book'2.xlsm'!TargetMacro' を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。

ブック名にシングルコーテーションが含まれる状態でも、エラーが発生せずにマクロを実行する方法はないでしょうか?

Excel は 2010、2013 の両方で確認しましたが、何れも同じ状況です。

宜しくお願いいたします。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

2 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2016-02-01T13:58:27+00:00

    ファイル名中のシングルクォーテーション1つをシングルクォーテーション2つ(ダブルクォーテーションではない)に置き換えれば動くと思います.ファイル名が

    Book'2.xlsm

    の場合にはVBAコード上にあるファイル名の部分を

    Book''2.xlsm

    に置き換えて

    Application.Run "'Book''2.xlsm'!TargetMacro"

    とします.

    この回答は役に立ちましたか?

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2016-02-02T00:46:09+00:00

    早速のご返信、ありがとうございます。

    シングルコーテーションを2個にすることで

    不具合が解消されることを確認いたしました。

    大変助かりました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません