• ベストアンサー

マクロ教えてください

マクロについての質問です。 サブルーチン間ですべての変数を共有する方法ってありませんか。 Call Prg(A,B,C) というやり方は知ってますが、サブルーチンの数が結構ありますし変数も多いため、 もっとスマート?にできないかなと思いまして。 よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >サブルーチン間ですべての変数を共有する方法ってありませんか。 通常、モジュールレベルの変数を使用しますね。 つまり、モジュールの先頭のプロシージャーの外で、変数を宣言します。しかし、Publicにするかどうかは、よく考えたほうがよいです。通常は、必要ありません。 Publicステートメントは、思わぬトラブルに発展することがありますので、私は、めったに使いません。せいぜい、プロジェクト・グループ内で、1つぐらいです。モジュールは、モジュール内で、ユーティリティを別にして、完結型にすれば、必要ありません。 それから、共有変数は、参照渡しになりますから、共有してよいものと、そうでないものは、十分に気をつけて区分けしたほうがよいです。そういうのは、スマートさとは別問題です。1つずつ丹念に、変数をつけておいたほうが、無難だと思います。

tarobei
質問者

お礼

御礼が遅くなり申し訳ありません。アドバイスありがとうございます。 参考にさせて頂きます。

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

モジュールの先頭で Public A As Long などとPublic 宣言してください。 Private C As Integer とPrivate 宣言すると、モジュール内でのみ共用可能になります。

tarobei
質問者

お礼

お礼が遅くなり申し訳ありません。参考にさせて頂きます。 ありがとうございました。

関連するQ&A