- ベストアンサー
グローバル変数
VBAにおいて「グローバル変数」と言うのは パブリックで宣言された変数を言うのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No3一部訂正です 標準モジュール以外のモジュール(シートモジュールなど)のプロシージャの外でPublic宣言された変数 (プロシージャの外でDim宣言、Private宣言でも同じ) そのモジュール内のすべてのプロシージャで共有され、他のモジュールのプロシージャから共有されません。 上記を以下に訂正 標準モジュール以外のモジュール(シートモジュールなど)のプロシージャの外で Public宣言された変数 そのモジュール内のすべてのプロシージャで共有され、他のモジュールのプロシージャから共有する場合は「モジュール名.変数名」で共有されます。 Dim宣言、Private宣言された変数 そのモジュール内のすべてのプロシージャで共有され、他のモジュールのプロシージャから共有されません。
その他の回答 (3)
- kkkkkm
- ベストアンサー率66% (1731/2601)
エクセルのvbaではパブリックで宣言された場所により有効範囲が異なります。 標準モジュールのプロシージャの外でPublic宣言された変数 そのブック内のすべてのプロシージャで共有されます 標準モジュール以外のモジュール(シートモジュールなど)のプロシージャの外でPublic宣言された変数 (プロシージャの外でDim宣言、Private宣言でも同じ) そのモジュール内のすべてのプロシージャで共有され、他のモジュールのプロシージャから共有されません。 複数のプロシージャで変数を共有したい場合は、上記の共有範囲を意識して適宜利用してください。
お礼
回答ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
こんな質問コーナーに質問しなくても、Googleなどで 「エクセルvba パブリック変数」で検索すれば、たくさん記事があり、数個の記事を読み、やってみればわかることだよ。 http://tonari-it.com/public-and-call-procedure/ の 「今回のように複数のプロシージャで構成したいと思ったら、同じ変数を複数のプロシージャでまたがって扱いたいときがあります。そんな時には、プロシージャの外でPublicの変数宣言をするのです。」あたりが該当しそう。 ーー >パブリックで宣言された変数を言うのでしょうか 半分正しく、半分は不完全といえるのでは。 「(複数)プロシージャの外で」がポイント。 「General」部で、というのも説明に必要かな。
お礼
回答ありがとうございました。
- fmxBeem
- ベストアンサー率54% (325/599)
標準モジュールのGeneralでPublic宣言したものがグローバル変数になります。グローバル変数・定数は専用の標準モジュールを作成して管理しておくと、変更があった時に楽ですよ(^^)
お礼
回答ありがとうございました。
お礼
回答ありがとうございました。