Excel VBA質問箱 IV

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

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


59056 / 76732 ←次へ | 前へ→

【22390】Re:他のファイルにあるマクロの作動のさせ方
発言  ichinose  - 05/2/17(木) 18:26 -

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

>
>実際に書いたコードは、
>Application.Run "'" & Path & "'!sheet" & idx & ".macro1"
>(PathにはC:\〜\aaa.xmlというフルパスが格納されています)
>と、書きました。
>
>1枚目から順に3枚目までのシートでループを回して処理させました。
>結果としましては、macro1は動作しておりませんでした。
ははっ、標準モジュールにあるのなら動きませんね!!
では、例題仕様です。

まず、標準モジュールにMacro1というプロシジャーが存在しているブックの
名前を callsample.xls としましょう。

Macro1の内容は、
'=========================================================
Sub Macro1()
  MsgBox ActiveSheet.Name
End Sub
アクティブシート名を表示するコード
このブックcallsample.xlsには、
Sheet1、Sheet2、Sheet3というシート名が付けられたシートがあります。

この中のSheet2とSheet3には、「フォーム」ツールバーのボタンを配置します。
このボタンには、Macro1が関連付けされています。


次に呼び出しを行うブック、これを「calltest.xls」という名前を付けましょう。
二つのブックは、同じフォルダ内に保存して下さい。

では、calltest.xlsの標準モジュールのコードです。
直接呼び出すのではなくOpenメソッドで対象ブックを開きました。

'===============================================================
Sub main()
  Dim opnbk As Workbook
  Dim sht As Worksheet
  Dim btn As Button
  Set opnbk = Workbooks.Open(ThisWorkbook.Path & "\callsample.xls")
  '↑対象ブックを開く
  For Each sht In opnbk.Worksheets
   sht.Activate
   For Each btn In sht.Buttons
     Application.Run btn.OnAction
     Next
   Next
End Sub

こんなコードで実行してみて下さい。
ボタンがあるシートだけMacro1が実行されます。
つまり、上の例の場合、ボタンのあるシートのシート名が表示されます。
上記の内容のブックを新規に作成して試してみてください。


>

0 hits

【22340】他のファイルにあるマクロの作動のさせ方 mimi 05/2/16(水) 17:22 質問
【22349】Re:他のファイルにあるマクロの作動のさせ方 ichinose 05/2/16(水) 21:18 発言
【22389】Re:他のファイルにあるマクロの作動のさせ方 mimi 05/2/17(木) 17:40 質問
【22390】Re:他のファイルにあるマクロの作動のさせ方 ichinose 05/2/17(木) 18:26 発言
【22415】Re:他のファイルにあるマクロの作動のさせ方 mimi 05/2/18(金) 16:27 お礼

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