• 締切済み

WordでVBAの変数について

ThisDocumentにて宣言した変数内の数値をModule1の処理内で使用したいのですが ThisDocumentにてPublicで宣言した変数に数値を入れてModule1にてMsgboxを使用して確認した所参照できていませんでした Module1にてPublicで宣言した変数内の数値をModule2で参照することはできましたがThisDocumentだとうまくいきません Publicで宣言すれば別モジュールから参照できると認識しているのですが間違いでしょうか? プログラム等やったことがないので根本的な勘違いをしているかもしれませんがどなたかご教授ください。

みんなの回答

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

こんにちは。 これは、VBAの基本です。 ThisDocument は、ローカルモジュールだから、そこで、Public ステートメントなどのグローバル変数で宣言をしても無駄です。ローカルはあくまでもローカルです。また、そこから呼び出すようなこともしません。意味がありません。グローバル変数は、標準モジュールで宣言します。 ただし、Wordでは、私は、個別のドキュメント・ファイルに対しては、ThisDocument ですべてをまかなうことが多いです。なぜか、皆、標準モジュールを使いたがるようですが、Excelとは違い、オブジェクトであるDocument自体がExcelのように、増えないからです。せいぜい、UserForm ぐらいなだけです。

回答No.1

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