
エクセル2000です。
標準モジュールで取得したパブリック変数は他のシートモジュールで参照できますが、逆にシートモジュールで取得したパブリック変数は他のシートで参照できないのでしょうか?
シートチェンジイベントで取得した文字列を変数nmに格納し、ワークブックモジュールで呼び出そうとしたら何もでてきませんでした。
どうやったらよいのでしょうか?
'シートモジュールの記述
Public nm As String
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rw As Integer
If Intersect(Target, Range("A1").CurrentRegion) Is Nothing Then Exit Sub
If Selection.Count > 1 Then Exit Sub
rw = Target.Row
nm = IIf(Cells(rw, "A") = "", Cells(rw, "A").End(xlUp).Value, Cells(rw, "A").Value)
'MsgBox nm
End Sub
'ThisWorkbookモジュールの記述
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If nm = "" Then Exit Sub
MsgBox nm & "さん、ご苦労様でした。"
End Sub
No.3
- 回答日時:
こんにちは。
オブジェクトモジュール(クラス、シート、ThisWorkbook、Userform 等)で
宣言された Public な変数にアクセスするには、親オブジェクトを装飾する
必要があります。例えば、シートモジュールなら
Sheet1.StaffName
ですね。なお、シート名は可変のため、VBA で使うなら
コードネーム.変数名
とすることが多いです。ブックモジュールの Public 変数も、コードネームが
ThisWorkbook のままなら、
ThisWorkbook.SystemAuthor
などとします。これは VBA の言語仕様と考えて差し支えないと思います。
KenKen_SPさま、いつもありがとうございます。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheet1.nm = "" Then Exit Sub
MsgBox Sheet1.nm & "さん、ご苦労様でした。"
End Sub
でうまくいきました。勉強になりました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Application.OnKey:項目入力中...
-
Sub Workbook_Open()でユーザー...
-
大量の標準モジュールを解放す...
-
vba userFormのSubを標準モジュ...
-
acwzlibとは?
-
Excel VBA マクロの実行方法に...
-
Excel VBA 定義されたプロージ...
-
VBAで旧字体を異字体に一括で変...
-
Excel VBAで、ユーザーフォーム...
-
Access VBA標準モジュールにつ...
-
Perlでモジュールをインストー...
-
VBのフォームモジュールと標準...
-
グラフのX,Y座標を取得したい
-
一太郎9でふりがなが設定できな...
-
印刷後メッセージボックスを表...
-
VBAProjectのモジュ...
-
モジュールの最大数はいくつな...
-
エクセルでこまっています。
-
標準モジュールを削除したい。(...
-
違うモジュールでも同じ変数を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでシートモジュール...
-
Excel VBAで、ユーザーフォーム...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 定義されたプロージ...
-
Excel VBAでリンク切れをチェッ...
-
VBでグローバル変数を宣言するには
-
標準モジュールを削除したい。(...
-
vba userFormのSubを標準モジュ...
-
モジュールからフォームのボタ...
-
モジュールの最大数はいくつな...
-
モジュールとクラスの違いって...
-
【vba】フォームに書いてあ...
-
VBAProjectのモジュ...
-
印刷後メッセージボックスを表...
-
Access VBA標準モジュールにつ...
-
VBAで旧字体を異字体に一括で変...
-
大量の標準モジュールを解放す...
-
Form間の値の渡し方
-
エクセルVBA クラスモジュール...
おすすめ情報