回答になるかもしれない。ということで、回答に記載します。
私の環境で、そのエラーメッセージが出るのは、以下のパターンがありました。
・渋谷.xlsmの標準モジュールにtestという関数がない。
・渋谷.xlsmのマクロが実行できない状態になっている。
例えばtestという関数が標準モジュールに複数あるとか、構文エラーがどこかにあるとか
こちらの場合であれば、渋谷.xlsmを起動して、直接testの関数が実行できるかを確認になるでしょうか。
他にそのメッセージが出る場合は、まだわかりませんが
ネットでそのエラーメッセージで検索するとセキュリティー関係の設定が云々とか書いてありましたね。
ただ、セキュリティの設定が違っていても、パスが違っていても提示のメッセージは出ませんでした。
バージョンによる誤差かもしれません。
色々確認してみてそれでも駄目であれば、それぞれの確認した結果を質問に追記すればよいかと思います。
(追記)
いろいろ確認方法を追記します。
(1)
Sub test2()
Debug.Print CurDir
Application.Run "渋谷.xlsm!test"
end sub
として実行したらイミディエイトウィンドウに、E:\と表示されるか。
(2)
渋谷.xlsmのみを開き、VBE(VBAのコードを書くところ)において
メニューの
デバッグ>VBA Projectのコンパイル
を実行してエラーとなる箇所がないか。
エラー箇所があれば、すべて解消する。
もし、解消方法が不明なものがあれば、質問に追記でもいいかと思います。
(まぁ、すべて解消しなくても実行は出来ますが、実行できない問題もあるので
ソースが見れない状態では、こういう確認方法になります)
(2021/05/05の変更に対する追記)
1.現在提示のコードからは、提示のエラーメッセージは表示されません。
2.コードの改善案
(1)
渋谷.xlsmのコードは、標準モジュールに記載しているのでしょうか。
もし、標準モジュールに記載していないのであれば外部から今の形式で呼び出すことはできません。
標準モジュールを追加して、コードを記載するか、標準モジュールに記載しないのであれば
「Application.Run "'渋谷.xlsm'!Sheet1.test1"」というような記述に変更する必要があります。
(2)
VBA
1Sub test1()
2Call test2
3end sub
4```であれば「渋谷.xlsm」に「test2」が定義されていないので、エラーとなります。
5何をしたいのかわかりませんが、修正は必要です。
6
7(3)
82-2_003z(run).xlsmと渋谷.xlsmが同一のフォルダにあるのであれば2-2_003z(run).xlsmの処理は以下に修正した方が良いです。同一フォルダの「渋谷.xlsm」という意味になります。
9
10```VBA
11Public Sub test2()
12 ChDrive ThisWorkbook.Path
13 ChDir ThisWorkbook.Path
14 Application.Run "'渋谷.xlsm'!test1"
15End Sub
とりあえず、今思いつくのはこんな所でしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/01 11:31
2021/05/01 11:39
2021/05/01 23:01
2021/05/02 00:16 編集
2021/05/02 22:41
2021/05/05 09:59 編集
2021/05/05 10:14
2021/05/05 10:28 編集
2021/05/05 10:33 編集
2021/05/05 12:39