Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8116 / 13644 ツリー ←次へ | 前へ→

【35064】別ファイルのマクロを実行するマクロについて 初心者 06/2/20(月) 16:02 質問[未読]
【35065】Re:別ファイルのマクロを実行するマクロについて ichinose 06/2/20(月) 17:34 発言[未読]
【35067】Re:別ファイルのマクロを実行するマクロについて 初心者 06/2/20(月) 18:53 お礼[未読]

【35064】別ファイルのマクロを実行するマクロについて
質問  初心者  - 06/2/20(月) 16:02 -

引用なし
パスワード
   Sub 処理()

  Workbooks.Open Filename:=ファイル名
  Windows(ファイル名).Activate
  Application.Run ○○○○○○○
  
End Sub

以下、定義
Function ○○○○○○○()
  ○○○○○○○= Workbooks("実績.xls").Sheets("××").Cells(1, 1).Value
End Function

あるファイルで作成しているマクロを本マクロで実行したい、且つループで繰り返す場合に上記の○○○にどのように入力したらいいのでしょうか?
(ここは変動させたい為、定義付けしたい)
○○○はエクセル名、マクロ名

どなたかご教示頂ければと思います。

【35065】Re:別ファイルのマクロを実行するマクロについて
発言  ichinose  - 06/2/20(月) 17:34 -

引用なし
パスワード
   ▼初心者 さん:
こんばんは。

例えば、
標準モジュールに
'====================================================
Function funcsample() As Variant
  funcsample = "funcsample"
End Function


というコードが記述されたブックのブック名を
「func test.xls」とします。
(func test.xlsと間にわざと空白をいれました)


別のブック(runtest.xls)の標準モジュールに
'=========================================================
Sub Macro1()
  Dim bk As Workbook
  Set bk = Workbooks.Open(Filename:=ThisWorkbook.Path & "\func test.xls")
  ans = Application.Run("'" & bk.Name & "'!funcsample")
'                 ブック名に空白などなければ'で囲まなくてもよい
  MsgBox ans
End Sub


と言うコードを記述してふたつのブックは同じフォルダに保存してください。

runtestのみ開いてMacro1を実行してみてください。

funcsample とメッセージボックスで表示されるはずです。

【35067】Re:別ファイルのマクロを実行するマクロについて
お礼  初心者  - 06/2/20(月) 18:53 -

引用なし
パスワード
   早速のアドバイス有難うございました。
参考になりました。

8116 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free