標準モジュールを挿入して、変数の前にPublicを宣言してあげると、
どのモジュールからも参照が可能になるのは、本を読んでよく分かったのですが、
「Function」などで関数プロシージャの定義を標準モジュールでする時に、
「Public」があると、なしでは、どういった効果がでるのでしょうか?
本には、ほとんどPublicが宣言されていました。
関数プロシージャを定義する場合は、Publicを付けなくても、
他のモジュール(例えばフォームなど)から参照可能ですよね?
今一、標準モジュールと関数定義、Public変数の関連がわかっていません。
良かったら、アドバイスお願いします。m(__)m
No.1ベストアンサー
- 回答日時:
>関数プロシージャを定義する場合は、Publicを付けなくても、
>他のモジュール(例えばフォームなど)から参照可能ですよね?
それは関数プロシージャの場合、Publicが規定値だからです。
だから関数名にPublicやPrivateを付けないとPublicとみなされます。
逆に変数はPrivateが規定値になります。
しかしながら規定値に頼ってPublicやPrivateを省略すべきではありません。
なぜなら今のバージョンではこの規定値でも、将来のバージョンでは変わるかもしれません。
そうなるとプログラムが動かなくなるかもしれません。
また、プログラミング技術の面からも関数や変数の有効範囲(スコープ)は小さいほうが良いので、PublicやPrivateで有効範囲を指定すべきです。
この当りのことは、ヘルプでスコープを調べると良いです。
回答ありがとうございました。
おかげさまで、なぜPublicが指定した方が良いのか理解できました。
明示的に宣言しておいた方が将来を見越してもベターと言う感じですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロについて教えてください。 1 2023/06/06 00:57
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) VBAで、㉑という数値が、正しく、入力できない 2 2022/07/26 20:22
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ArduinoのジャイロモジュールMP...
-
Excel VBAでリンク切れをチェッ...
-
モジュールとクラスの違いって...
-
Excel VBA 定義されたプロージ...
-
Excelで時刻になったら知らせて...
-
グラフのX,Y座標を取得したい
-
vba 標準モジュールインポート...
-
VB.NETでの他アプリケーション...
-
VBAのモジュールについて教えて...
-
Apache2 静的・動的モジュール...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAで、ユーザーフォーム...
-
VBAで別モジュールへの変数の受...
-
VBA モジュールを閉じるショー...
-
モジュールとは何ですか
-
Access VBA標準モジュールにつ...
-
ExcelVBA:パブリック オブジェ...
-
VBA ユーザーフォーム Image1 ...
-
関数の引数にクラスを使いたい
-
excel vba です
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 定義されたプロージ...
-
ArduinoのジャイロモジュールMP...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBAでシートモジュール...
-
モジュールとは何ですか
-
VBA This Workbookモジュール...
-
VBでグローバル変数を宣言するには
-
グラフのX,Y座標を取得したい
-
モジュールの最大数はいくつな...
-
【vba】フォームに書いてあ...
-
VBAで旧字体を異字体に一括で変...
-
Excel VBAで、ユーザーフォーム...
-
Form間の値の渡し方
-
モジュールとクラスの違いって...
-
Access VBA標準モジュールにつ...
-
本当にPublicな変数(配列で)
-
標準モジュールを削除したい。(...
おすすめ情報