エクセル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も見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
エクセル マクロ 標準モジュールのマクロから、シートモジュールのマクロを呼び出す
Excel(エクセル)
-
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
-
4
VBAで別モジュールへの変数の受け渡し方法
Visual Basic(VBA)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
10
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
11
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
12
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
13
VBA モジュールで共通に使う変数の宣言方法
その他(Microsoft Office)
-
14
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
15
エクセルでエラーが出て困っています。
Excel(エクセル)
-
16
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
17
VBA public変数はどのようなことをしたら解放されますか?
Visual Basic(VBA)
-
18
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
19
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
20
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBでグローバル変数を宣言するには
-
VBAで別モジュールへの変数の受...
-
VBAで「メモリが不足しています」
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAでリンク切れをチェッ...
-
標準モジュールを削除したい。(...
-
Access VBA標準モジュールにつ...
-
Excel VBA 『Call』で呼び出す...
-
グラフのX,Y座標を取得したい
-
システムエラーの内容
-
VBAで旧字体を異字体に一括で変...
-
Excel VBAで、ユーザーフォーム...
-
パワーポイントでマクロ(Auto_C...
-
別シートに罫線がひけない
-
エクセルVBAでシートモジュール...
-
Form間の値の渡し方
-
acwzlibとは?
-
モジュールの最大数はいくつな...
-
VBA起動時のコンボボックスにつ...
-
クラスモジュールを使わないと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
エクセルVBAでシートモジュール...
-
VBAで別モジュールへの変数の受...
-
VBでグローバル変数を宣言するには
-
Excel VBA 『Call』で呼び出す...
-
Excel VBA 定義されたプロージ...
-
VBA This Workbookモジュール...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAで、ユーザーフォーム...
-
ArduinoのジャイロモジュールMP...
-
グラフのX,Y座標を取得したい
-
'Range'メソッドは失敗しました
-
VBAで旧字体を異字体に一括で変...
-
モジュールとクラスの違いって...
-
Excelで時刻になったら知らせて...
-
【vba】フォームに書いてあ...
-
モジュールとは何ですか
-
Access VBA標準モジュールにつ...
-
モジュールの最大数はいくつな...
-
VBのフォームモジュールと標準...
おすすめ情報