こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

WordでVBAの変数について

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

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

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

投稿日時 - 2008-01-30 04:11:45

QNo.3726882

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんにちは。

これは、VBAの基本です。

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

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

投稿日時 - 2008-01-30 10:43:37

メモ:

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

投稿日時 - 2008-01-30 05:11:10

あなたにオススメの質問