• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで2つのプロシージャーをつなげるには)

VBAで2つのプロシージャーをつなげる方法

このQ&Aのポイント
  • VBAでSub ~ End Subまで書き終えて、一つのプロシジャーを完成させたあと、その下にもう一つのプロシジャーを作り、連続してマクロを動かす方法について教えてください。
  • 2つのマクロをつなげて1つの実行可能なマクロにする方法について教えてください。
  • 上のマクロと下のマクロが別々に表示されてしまう問題を解決するための方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.2

まず、VBAの基本ルールを理解してください。 Sub~End Subまでがひとつのプロシージャです。 End Sub のあとにSubがあればSubからは新しいプロシージャになってしまいます。 これはどんに状況でも【絶対】です。 だから、貴方が記述したサンプルコードだとtest()とsample()が独立して当たり前。 この2つを連続して実行したければ#1さんの回答もひとつの方法ですが次のようなことも可能です。 Sub Exsample()   Call test()   Call sample() End Sub こういう作りにしておけばtest()とsample()というプロシージャを別の目的で独立させて実行することが可能になります。 そういう利用用途が全くないのならプロシージャに分ける必然性なんてないんですけどね。

hiroin790802
質問者

お礼

とても分かりやすいご回答ありがとうございます。 Callなら聞いたことがありますので、なんとなくできそうです。 ありがとうございました<m(__)m>

その他の回答 (1)

  • 11zep
  • ベストアンサー率36% (48/133)
回答No.1

サブプロシージャから別のサブプロシージャを呼び出せばいいと思います。 Sub test() 省略 Call sample End Sub >どうしても実行時に上のマクロと下のマクロが別々に表示されてしまします。 Private Sub sample() 上の様に修正すれば実行時に表示されないと思います。 Excel2007で試してみました。 参考になれば幸いです。

hiroin790802
質問者

お礼

ありがとうございます<m(__)m> bardfishさんのご回答とともに参考にさせて頂きました。

関連するQ&A