
エクセル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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル マクロ 標準モジュールのマクロから、シートモジュールのマクロを呼び出す
Excel(エクセル)
-
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
VBAで別モジュールへの変数の受け渡し方法
Visual Basic(VBA)
-
8
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
9
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
10
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
11
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
12
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
Excel VBA 定数にオブジェクトを指定したい
Visual Basic(VBA)
-
15
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
16
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
-
17
VBA public変数はどのようなことをしたら解放されますか?
Visual Basic(VBA)
-
18
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
19
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
20
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
vba userFormのSubを標準モジュ...
-
モジュールとクラスの違いって...
-
エクセルVBAでシートモジュール...
-
Excel VBA 定義されたプロージ...
-
モジュールからフォームのボタ...
-
VBAで旧字体を異字体に一括で変...
-
大量の標準モジュールを解放す...
-
acwzlibとは?
-
VBAのモジュールについて教えて...
-
'Range'メソッドは失敗しました
-
Excel VBA 『Call』で呼び出す...
-
Excelシート内セル記述の違いに...
-
xoops myAlbum-Pで画像がアッ...
-
VBのフォームモジュールと標準...
-
プログラムでノッチフィルタの...
-
AddressOf と同じ機能を持った...
-
VBIDEで未使用の変数の抽出
-
【Excel VBA】標準モジュールに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
ユーザー定義関数に#NAME?が返...
-
vba userFormのSubを標準モジュ...
-
Excel VBA 定義されたプロージ...
-
モジュールとクラスの違いって...
-
モジュールの最大数はいくつな...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBAでシートモジュール...
-
VBでグローバル変数を宣言するには
-
【vba】フォームに書いてあ...
-
SendKeysの使い方について
-
モジュールからフォームのボタ...
-
VBAで旧字体を異字体に一括で変...
-
モジュールとは何ですか
-
ExcelでTelnetを動かしたい
-
標準モジュールを削除したい。(...
-
VBA This Workbookモジュール...
-
Access VBA標準モジュールにつ...
おすすめ情報