ちょっと変なやり方かもしれないのですが、都合上こうやりたいので教えてください。
フォーム1の中にフォーム2を入れてサブフォームとして
フォーム2の中にコマンドボタンを一つ置きました。
そのコマンドボタンを押した時に、そのコマンドボタン名を取得したいのですがうまくできません。
フォームは20個ぐらいあってこれと同じ動きをしたいので、
フォームモジュールには
Private Sub コマンド0_Click()
Call アクティブコントロール名を取得する
End Sub
として、
標準モジュールにコードは書いています。
Sub アクティブコントロール名を取得する()
Dim フォーム As String
フォーム = Screen.ActiveForm.Name
MsgBox "アクティブコントロール名" & Forms(フォーム).ActiveControl.Caption
End Sub
にすると、オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)になります。
そもそも、フォーム = Screen.ActiveForm.Nameの時点で、フォーム1になっています。
実際のコマンドボタンはフォーム2にあるのに。
なので、無理矢理
MsgBox "アクティブコントロール名" & Forms("フォーム2").ActiveControl.Caption
にしたら、
実行時エラー2450
マクロの式またはVisualBasicコードで参照されている'フォーム2'が見つかりません。
という違うエラーになりました。
Sub アクティブコントロール名を取得する()
Dim フォーム As String
フォーム = Screen.ActiveForm.Name
Forms("フォーム2").SetFocus
MsgBox "アクティブコントロール名" & Forms("フォーム2").ActiveControl.Caption
End Sub
にすればいいのかな?と思ったら
Forms("フォーム2").SetFocusでアウトでした。
もともとはサブフォームのコントロールから発信したイベントなのに、
サブフォームのコントロールの値が取れないのでしょうか?
実際のmdbファイルではコマンドボタンではなくテキストです。
ご回答よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
accessVBA 「フォームが見つかりません」
その他(データベース)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
-
4
ACCESSのBookmarkプロパティの使い方
その他(データベース)
-
5
現在アクティブなフォーム名を取得するには
Access(アクセス)
-
6
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
7
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
8
起動時のフォームの大きさ?
Access(アクセス)
-
9
アクセスVBAのMe!と[ ]
Access(アクセス)
-
10
コントロールの存在確認
Visual Basic(VBA)
-
11
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
12
どこにもフォーカスを当てたくない
Access(アクセス)
-
13
現在アクティブになっているオブジェクトを取得
Access(アクセス)
-
14
サブフォームに新規レコードを追加する際、一番下に表示するのではなく一番上に表示したい
Visual Basic(VBA)
-
15
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
16
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
17
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
18
Access_Formのデザインビュー画面を拡大表示
Access(アクセス)
-
19
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
20
ActiveControlと入力
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームのテキストボ...
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
【VBAユーザーフォームで閉じる...
-
'ユーザーフォーム右上隅の[×...
-
テキストボックス入力データの...
-
VB6の _ExtentX, _ExtentY
-
Accessで、一つのフォーム画面...
-
VBAでユーザーフォームを再表示...
-
フォームのテキストボックスな...
-
モーダルフォームとモードレス...
-
Form_Load と Form_Activate の...
-
フォームウィンドウを最前面に...
-
MSGBOXのフォント大きさ変更
-
Excelにて、ユーザーフォームで...
-
コントロールの存在確認
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
Accessのフォームでレコード移...
-
エクセルVBA フォーム上でOnkey...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
クリックイベントなのに、2回ク...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォーム上に現在日時...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
Excelにて、ユーザーフォームで...
-
VBAでユーザーフォームを再表示...
-
【VBAユーザーフォームで閉じる...
-
MSGBOXのフォント大きさ変更
-
VBA(エクセル)のユーザー...
-
Hideについて(.NET)
-
エクセルVBAのフォームを最...
-
コントロールの存在確認
-
ACCESSのフォーム、開くんです...
-
'ユーザーフォーム右上隅の[×...
-
フォームウィンドウを最前面に...
-
ユーザーフォームのラベルに時...
おすすめ情報