• ベストアンサー

グローバル変数

VBAにおいて「グローバル変数」と言うのは パブリックで宣言された変数を言うのでしょうか?

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1731/2601)
回答No.4

No3一部訂正です 標準モジュール以外のモジュール(シートモジュールなど)のプロシージャの外でPublic宣言された変数 (プロシージャの外でDim宣言、Private宣言でも同じ) そのモジュール内のすべてのプロシージャで共有され、他のモジュールのプロシージャから共有されません。 上記を以下に訂正 標準モジュール以外のモジュール(シートモジュールなど)のプロシージャの外で Public宣言された変数 そのモジュール内のすべてのプロシージャで共有され、他のモジュールのプロシージャから共有する場合は「モジュール名.変数名」で共有されます。 Dim宣言、Private宣言された変数 そのモジュール内のすべてのプロシージャで共有され、他のモジュールのプロシージャから共有されません。

lnnmmdsasc
質問者

お礼

回答ありがとうございました。

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率66% (1731/2601)
回答No.3

エクセルのvbaではパブリックで宣言された場所により有効範囲が異なります。 標準モジュールのプロシージャの外でPublic宣言された変数 そのブック内のすべてのプロシージャで共有されます 標準モジュール以外のモジュール(シートモジュールなど)のプロシージャの外でPublic宣言された変数 (プロシージャの外でDim宣言、Private宣言でも同じ) そのモジュール内のすべてのプロシージャで共有され、他のモジュールのプロシージャから共有されません。 複数のプロシージャで変数を共有したい場合は、上記の共有範囲を意識して適宜利用してください。

lnnmmdsasc
質問者

お礼

回答ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

 こんな質問コーナーに質問しなくても、Googleなどで 「エクセルvba パブリック変数」で検索すれば、たくさん記事があり、数個の記事を読み、やってみればわかることだよ。 http://tonari-it.com/public-and-call-procedure/ の 「今回のように複数のプロシージャで構成したいと思ったら、同じ変数を複数のプロシージャでまたがって扱いたいときがあります。そんな時には、プロシージャの外でPublicの変数宣言をするのです。」あたりが該当しそう。 ーー >パブリックで宣言された変数を言うのでしょうか 半分正しく、半分は不完全といえるのでは。 「(複数)プロシージャの外で」がポイント。 「General」部で、というのも説明に必要かな。

lnnmmdsasc
質問者

お礼

回答ありがとうございました。

  • fmxBeem
  • ベストアンサー率54% (325/599)
回答No.1

標準モジュールのGeneralでPublic宣言したものがグローバル変数になります。グローバル変数・定数は専用の標準モジュールを作成して管理しておくと、変更があった時に楽ですよ(^^)

lnnmmdsasc
質問者

お礼

回答ありがとうございました。

関連するQ&A

専門家に質問してみよう