Excelマクロが実行できません

初歩的な質問ですみません。

開いているワークブックの最後でマクロを実行させたいのですが、

ソース: VBA の呼び出し
メッセージ: マクロ ‘Sheets_Delete’ を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。

とエラーになってしまい実行できません。
ブック側は.xlsmのもので、オプションからマクロをすべて有効に設定しています。
他のブックでも同じように最後にマクロを実行させていますが、そちらは問題なく動きます。

また、VBAの呼び出しでも同じエラーが出てきました。

解決策に心当たりのある方、解決方法をご教示いただけないでしょうか。

@1117

以下2点をご確認頂けますか?
①マクロの実行はExcelAplicationScope内で実行されている
②マクロ名がExcel側のマクロ名と一致している

どちらも確認済みです。

@1117 さん

Excelのオプションにある「VBA オブジェクト モデルへのアクセスを信頼する」を有効にする必要があります。(下の画像のように、デフォルトではチェックが外れている=無効になっていると思います)

Excelのスタート画面(あるいは「ファイル」タブ) → オプション → トラストセンター → 「トラストセンターの設定」ボタン
から確認してみてください。

そちらも確認済みで、チェックを入れています。

@1117 さん、

マクロの詳細をご共有させていただきたいですが、
よろしいでしょうか?

可能があれば、Workflowのcapture screenもお願いします。

Hi 1117,

英語ですが、参考できると思います。

Excel Application Scopeのプロパティを確認してください。って
① 読み取り専用オプションがチェックされていないこと
② コピーオプションがチェックされていないこと

1 Like

エラーメッセージから見ると、[マクロを実行]のアクティビティに、マクロを記載したファイル名(?)が記載されていないように見えますが、シート名を記載して実行してみませんか?

(ファイル名dotマクロ名) → [thisworkbook.test] なんて書くと実行できていると思うのですが。。。

ありがとうございます。
ファイル名の部分はシート名でもできるのでしょうか?
シート名は変数化しているので
[変数.“マクロ名”]でしょうか?

最終的に、“ファイル名.マクロ名” という文字列が作成できれば良いので、
変数名 + “.” + “マクロ名” ですかね。

ご参考↓

ありがとうございます。
そちら実装してみたのですが、上と同じエラーになってしまいました。

“ブック.xlsm!マクロ名”
ブックとマクロの間にびっくりマークつけてみて下さい。

そちら実装できたのですが、消したくないシートが消されて別のエラーになってしまったためシートを指定する方法はないでしょうか。

「範囲を読み込み」でシート名の変数を選択することで当初の問題はなんとか解決されましたが、元すでに読み込みを行っているシートをそこでもう一度読み込みなおすというのが二重になっているようで気になってしまい・・・

image