『Application.Runの呼び出し方法について』(たぬちゃ)
エクセルVBAについてですが
[Book1:Sheet1]
folder = ThisWorkbook.Path & "\"
filename = "test.xlsm"
data = "あいう"
Set wb = Workbooks.Open(folder & filename)
Call Application.Run(filename & "!Sheet1.SetData", data)
[Book2:Sheet1]
Sub SetData(Optional ByVal data As String = Empty)
msgbox data
End Sub
実行すると「あいう」が表示されます。
ところが以下のようにファイル名にスペースが入ると
filename = "test 集計.xlsm"
「このブックでマクロが使用できない・・」
になります。
調べてみると""""でくくるとあったので
filename = """"test 集計.xlsm""""
としてみると
「申し訳ございません。がみつかりません。名前が変更されたか、移動や・・・」
になります。
どのようにすればいいのでしょうか?
< 使用 Excel:Excel2016、使用 OS:Windows11 >
>""""でくくる もともとの "ファイル名" のファイル名部分を"" ""でくくり """ファイル名""" じゃないの? (ノーム) 2025/06/24(火) 13:56:23
Option Explicit Sub Example() Dim wb, folder$, Filename$, Filename2$, data$ folder = ThisWorkbook.Path & "\" Filename = "test 集計.xlsm" data = "あいう" Set wb = Workbooks.Open(folder & Filename) Filename2 = "'test 集計.xlsm'" Call Application.Run(Filename2 & "!Sheet1.SetData", data) End Sub
m(__)m
(隠居Z) 2025/06/24(火) 14:52:50
filename = """"test 集計.xlsm""""
ではなくて
filename = """ & "test 集計.xlsm" & """
ということですか?
これだと
「申し訳ございません。がみつかりません。名前が変更されたか、移動や・・・」
になります。
Call Application.Run("""test 集計.xlsm""" & "!Sheet1.SetData", data)
これも
「申し訳ございません。がみつかりません。名前が変更されたか、移動や・・・」
になります。
Call Application.Run("""test 集計.xlsm""!SheetMain.SetArgumentData", data)
これもおなじく
「申し訳ございません。がみつかりません。名前が変更されたか、移動や・・・」
になります。
Call Application.Run("""test 集計""!SheetMain.SetArgumentData", data)
これもおなじく
「申し訳ございません。がみつかりません。名前が変更されたか、移動や・・・」
になります。
(たぬちゃ) 2025/06/24(火) 15:00:59
すみません。 元の質問をきちんと見ていませんでした。 シート名もあったんですね。 Call Application.Run("""test 集計.xlsm!Sheet1.SetData""", data) ではどうでしょうか? (ノーム) 2025/06/24(火) 15:07:17
隠居Zさんのコードで動作しますね。
以前こんな投稿をしました。参考になれば幸いです。
【メモ】Application.Runの使用について 1.ブック名に半角スペースが含まれている場合は、ブックのパスを ' と 'で囲む必要がある。 2.相手ブックが開いていない場合も自動で開いて実行する (むろんカレントフォルダ内に相手ブックが保存されていることが前提。 そうでなければ、フルパス指定、かつ'と'でパスを囲む必要がある) 3.標準モジュールにあるプロシージャはModule名を省略できるが、 同名のプロシージャが複数ある場合もありうるので、Module名を指定するのがよい。 4.SheetモジュールやThisWorkbookモジュールの場合はそれを省略できない。 5.プロシージャが private属性でも問題ない。 6.引数を渡すことができる。 例: Application.Run "相手ブック.xlsm!Module1.ボタン1_Click",引数1,・・・
(xyz) 2025/06/24(火) 15:45:41
Application.Run
フルパスで指定するなら、ブックが開いているかどうかを確認した方が すでに開いている場合2重に開いてしまうといった認識を持っているのだが・・・・ この辺改良されたのかな??
(2重) 2025/06/24(火) 19:36:45
いつの頃か正確に覚えていませんが、既に同名のブックがあって、重ねて開く動作命令を実行した場合、 エラーも出ませんし、警告も出ません。二重に開くこともありません。
(xyz) 2025/06/24(火) 22:56:33
こちらのご質問の内容からはすこぉしはなれるようなのでこの件に関しては
私はここまでとさせて戴きます。
又何かわかりましたら、別途機会が御座いましたら
成果発表などさせて頂きたいと思います。m(__)m
(隠居Z) 2025/06/25(水) 10:52:59
皆さんも本当にごめんなさい。
コメント返信したつもりでしたが
おそらくプレビューしただけで投稿したつもりになっていました。
どうもすみませんでした。
(たぬちゃ) 2025/06/26(木) 08:18:04
>以前こんな投稿をしました。参考になれば幸いです。
ありがとうございます。
とても役に立ちます。
(たぬちゃ) 2025/06/26(木) 08:21:54
参考になったのなら幸いでした。
>当該ファイルに変更が加えられた後でもういちど当該ファイルを開くと >メッセージが出るとかでないとか。。。(隠居Zさん) もちろん、修正(セルに追加入力)したケースでも、同様に新たに開くことはないことを確認したうえで コメントしております。
(xyz) 2025/06/26(木) 14:03:30
たぬちゃさん よかったですね。。。<< _ _ >> (*^ ^*)/////
(隠居Z) 2025/06/26(木) 14:14:41
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.