プロが教えるわが家の防犯対策術!

ThisDocumentにて宣言した変数内の数値をModule1の処理内で使用したいのですが

ThisDocumentにてPublicで宣言した変数に数値を入れてModule1にてMsgboxを使用して確認した所参照できていませんでした
Module1にてPublicで宣言した変数内の数値をModule2で参照することはできましたがThisDocumentだとうまくいきません
Publicで宣言すれば別モジュールから参照できると認識しているのですが間違いでしょうか?

プログラム等やったことがないので根本的な勘違いをしているかもしれませんがどなたかご教授ください。

A 回答 (2件)

こんにちは。



これは、VBAの基本です。

ThisDocument は、ローカルモジュールだから、そこで、Public ステートメントなどのグローバル変数で宣言をしても無駄です。ローカルはあくまでもローカルです。また、そこから呼び出すようなこともしません。意味がありません。グローバル変数は、標準モジュールで宣言します。

ただし、Wordでは、私は、個別のドキュメント・ファイルに対しては、ThisDocument ですべてをまかなうことが多いです。なぜか、皆、標準モジュールを使いたがるようですが、Excelとは違い、オブジェクトであるDocument自体がExcelのように、増えないからです。せいぜい、UserForm ぐらいなだけです。
    • good
    • 0

メモ:



●オブジェクト指向自体の理解が必要
●VB.NETではModuleはその全てのメンバがSharedなクラス。同じ考えでVB6やVBAを見るとすっきりする。
●ThisDocumentに書いたPublicな奴は
ThisDocumentクラス(のデフォルトインスタンス)のPublic変数なので
ThisDocument.hogeとしないと呼び出せない。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!