| 
    
     |  | ▼ろん さん: 
 モジュールには
 標準モジュール、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 が実行されます。
 
 |  |