|
▼ろん さん:
モジュールには
標準モジュール、ThisWorkbookモジュール、Sheetモジュール、ユーザーフォームモジュール
そして特別な存在としてクラスモジュールがあります。
VBAをこれから勉強ということであれば、まず標準モジュールを基本にすればよろしいかと思います。
その他のモジュールは、オブジェクトモジュールと総称。特殊なイベント処理に使用するのが主目的。
今回、ユーザーフォームも使っておられるようですが、もし、別マクロブックを開くことのみがその目的であれば
これも標準モジュールで処理したほうが、わかりやすいと思います。
それぞれのモジュールをどう使い分けるか、それは、やりながら、おいおいにわかってくると思いますが
以下のページで、わかりやすく説明されていますので一読されたらよろしいですね。
ht p://officetanaka.net/excel/vba/beginner/10.htm
ht p://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_200_040.html
ht p://www.happy2-island.com/excelsmile/smile01/capter00400.shtml
で、サンプル的に。
1.ワークブック1に標準モジュールを準備。
2.その標準モジュールに以下のマクロを書きます。
Sub Test1()
'★ワークブック2 を開くコードをここに記述
'ワークブック2 の Test2 を実行
Application.Run "ワークブック2.xlsm!Test2"
'★後続の処理コードをここに記述
'★必要なら、ここでワークブック2を閉じるコードを書きます
End Sub
3.ワークブック1のシート(どのシートでもいいですが、最初のシートにしましょう)に
開発タブ->挿入 から、フォーム今tロールのボタンを配置します。
4.マクロ登録ダイアログが表示されますから、Test1 を選択します。
これで、このボタンがクリックされたら、Test1が起動するようになります。
5.デザインモードになっていますので、デザインモードをクリックして解除します。
で、次に ワークブック2 側。
6.標準モジュールを準備します。
7.ここに、Test2 プロシジャを書きます。
Sub Test2()
'★このプロシジャで実行すべきコードを記述。
'以下はテスト用です
MsgBox "Hello!"
End Sub
こうして、ワークブック1側のボタンをクリックしてください。
ワークブック2側のプロシジャ、Test2 が実行されます。
|
|