
エクセル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も見ています
-
エクセル マクロ 標準モジュールのマクロから、シートモジュールのマクロを呼び出す
Excel(エクセル)
-
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
5
VBAで別モジュールへの変数の受け渡し方法
Visual Basic(VBA)
-
6
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
9
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
12
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
13
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
14
Excel VBA 定数にオブジェクトを指定したい
Visual Basic(VBA)
-
15
VBA Constの指定シートのセルを指定する方法
Visual Basic(VBA)
-
16
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
17
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
18
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
19
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
20
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBでグローバル変数を宣言するには
-
VBA This Workbookモジュール...
-
モジュールからフォームのボタ...
-
Excel VBAで、ユーザーフォーム...
-
エクセルVBAでシートモジュール...
-
モジュールの最大数はいくつな...
-
SendKeysの使い方について
-
Excelシート内セル記述の違いに...
-
VBA ユーザーフォーム Image1 ...
-
システム改善時の影響プログラ...
-
エクセルVBA クラスモジュール...
-
Excel VBA 『Call』で呼び出す...
-
'Range'メソッドは失敗しました
-
クラスモジュールを使わないと...
-
現在アクティブなフォーム名を...
-
Workbook.BeforeSave イベント...
-
ExcelVBA:パブリック オブジェ...
-
VBAで「メモリが不足しています」
-
右クリック時に押した所の名前...
-
BASP21 のようなコンポーネント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
エクセルVBAでシートモジュール...
-
VBでグローバル変数を宣言するには
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAで、ユーザーフォーム...
-
Excel VBA 定義されたプロージ...
-
vba userFormのSubを標準モジュ...
-
標準モジュールを削除したい。(...
-
'Range'メソッドは失敗しました
-
VBAで別モジュールへの変数の受...
-
モジュールからフォームのボタ...
-
モジュールの最大数はいくつな...
-
グラフのX,Y座標を取得したい
-
モジュールとクラスの違いって...
-
【vba】フォームに書いてあ...
-
Form間の値の渡し方
-
VBのフォームモジュールと標準...
-
VBA モジュールで共通に使う変...
-
Excel VBA 『Call』で呼び出す...
-
acwzlibとは?
おすすめ情報