• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:現在アクティブになっているオブジェクトを取得)

現在アクティブになっているオブジェクトを取得する方法は?

このQ&Aのポイント
  • 現在アクティブになっているオブジェクトを取得する方法について教えてください。
  • DoCmd.MoveSizeを使用してフォームの位置を指定する方法はありますが、現在アクティブなオブジェクトの名前を取得する方法はありますか?
  • DoCmd.SelectObjectを使用してフォームをアクティブにすることはできますが、現在アクティブなオブジェクトの名前を取得するコードはありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

> 現在アクティブなオブジェクト名を取得したいのですがそのようなコードはありますか? 対象がFormオブジェクト(及びそのControlオブジェクト)に限定されますが、以下のコードで 取得が可能です: <アクティブなフォームの名前>  Screen.ActiveForm.Name  (「Screen.ActiveForm」は、Formオブジェクトとして扱えます:   「Set Frm = Screen.ActiveForm」として、Form型の変数への格納が可能)  例)   MsgBox Screen.ActiveForm.Name <アクティブなコントロールの名前>  Screen.ActiveControl.Name  (こちらも同様に「Screen.ActiveControl」はControlオブジェクトとして扱えます)  例)   MsgBox Screen.ActiveControl.Name 詳しくは、ヘルプの「Screenオブジェクト」の項目などを参照してみてください。 (直前にフォーカスを持っていたコントロールを取得する「PreviousControl」なんて  ものもあります)

AZGLMMFHTI
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • データベースウィンドウを表示しない

    Sub データベースウィンドウを表示する() DoCmd.SelectObject acForm, "", True End Sub は問題なく動くのですが Sub データベースウィンドウを表示しない() DoCmd.SelectObject acForm, "", False End Sub は 「実行時エラー'2493' このアクションを実行するには[オブジェクト名]引数が必要です。 」 というエラーになります。 Sub データベースウィンドウを表示しない2() DoCmd.SelectObject acForm, "データベースウィンドウ", False End Sub でも駄目でした。 アドバイス宜しくお願い致します。

  • アクセス 開いているレポート名を取得する。

    アクセス初心者です。 VBAにて フォーム1でレポート、レコードを選択後に レポートを開くと同時に印刷フォームも開くように組んでます。 その印刷フォームで印刷をすると、印刷フォーム自体が印刷されてしまうので ”レポート名”を認識させてから印刷しています。 その時の”レポート名”を開いたときに自動的に変数として印刷フォームに引き継ぎたいのですが やり方が分かりません。 意図としては、印刷フォームを汎用的に使いたいためです。 印刷フォームの呼び出しコードは下記にて Private Sub コマンド18_Click() Dim report_name As String Dim report_value As String If Not IsNull(コンボ50.Value) = True Then report_name = コンボ48.Value  ’レポート名です report_value = コンボ50.Value DoCmd.OpenReport report_name, acViewPreview, , "[現場名]='" & report_value & "'" DoCmd.MoveSize Width:=10000, Height:=13000 Reports(report_name).ZoomControl = 75 Else MsgBox "項目を選択してください。" End End If DoCmd.OpenForm "印刷_フォーム", acNormal End Sub Private Sub コマンド53_Click() Dim new_date As String Dim form_name As String If Not IsNull(コンボ48.Value) = True Then form_name = コンボ48.Value DoCmd.OpenForm form_name, acNormal, , , acFormAdd DoCmd.MoveSize Width:=12000, Height:=13000 Else MsgBox "[取引先名]を入力してください。" End If End Sub 下記は印刷フォームにて、印刷設定をする場合のコードです Private Sub コマンド0_Click() Dim report_name As String report_name = "レポート名" On Error Resume Next DoCmd.SelectObject acReport, report_name, True DoCmd.RunCommand acCmdPrint End Sub

  • フォームのサイズが指定した値にならない

    accessです。 新規にフォームを立ち上げて Private Sub Form_Open(Cancel As Integer) DoCmd.MoveSize , , 10000, 10000 Debug.Print Me.InsideHeight Debug.Print Me.InsideWidth End Sub としました。 そうすると戻り値がそれぞれ 7365 17025 なのですが、 なぜ、 DoCmd.MoveSize , , 10000, 10000 で、10000を設定してるのに、 その通りにならないのでしょうか?

  • SelectObjectされているフォーム

    vbaで DoCmd.MoveSize 0, 0, 567 * 35, 567 * 30 を実行した際に、 どのオブジェクトに対して行われたかを取得する方法はありますか? SelectObjectされているフォームを Debug.Printで取得するコードを教えてください。

  • オブジェクト(コントロール)の名前を変更したい

    諸事情があり、フォーム上のコマンドボタン40個くらいの名前を変更したいのですが まず、一つだけ変更できるか実験してみたのですがうまくできません。 Sub オブジェクト名変更() DoCmd.OpenForm Form_フォーム1.Name, acDesign Form_フォーム1.コマンド0.Name = "あああ" DoCmd.Save acForm, Form_フォーム1 End Sub を実行すると メモリが不足しています。(Error 7) と出たり、 実行時エラー 29054 指定のコントロールを追加、名前を変更、または削除することはできません。 と出たりします。 これって無理って事でしょうか? バージョンは2007です。

  • コマンドボタン名を取得して変数に代入したい。

    OS:windowsXp Access Version:Xp 既出でしたらすみません。 INDEXのフォームにて複数コマンドボタンを作り、それを押すと各登録フォームや集計フォームが開くようにしています。 さて、質問なのですが、コマンドボタンで別のフォームを開く時の処理を(フォーム名が違うだけで後は同じなので)まとめて書きたいのです。 現在は次のようにやっています。 ------------------------------------------------- Private Sub F_メニュー_Click() Call close_form DoCmd.OpenForm "F_メニュー", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub F_売上伝票_Click() Call close_form DoCmd.OpenForm "F_売上伝票", acNormal, , , acFormEdit, acWindowNormal End Sub      (中略) Private Sub 事業所別集計_Click() Call close_form DoCmd.OpenForm "F_事業所別集計", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub 消費税変更_Click() Call close_form DoCmd.OpenForm "F_消費税変更", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub システム終了_Click() Call close_form DoCmd.RunCommand acCmdExit End Sub Private Sub close_form() msgbx = False DoCmd.Close acForm, "index", acSaveYes End Sub ------------------------------------------------- これを  ボタン名_Click() ではなく  frm_open() 押されたボタン名を変数に取得(ボタン名=Form名にします。) DoCmd.OpenForm 押されたボタン名変数 のように共有したいのです。 どうすれば出来ますでしょうか?ご指導よろしくお願いします。

  • エクセルでObjectがあるセル番地を取得するマクロは?

    エクセルのワークシート上にフォームのチェックボックスが多数配置されています。そのチェックボックスのTOPにあたる位置がセル番地で言えばどこになるのかを取得する方法はないでしょうか? TOP位置は以下のようにチェックボックスに登録したマクロで簡単に取得できるのですが・・・。 セル番地を取得して、やりたいことは、そのセルの右隣のセルの値を取得することです。もし、そのセルの右隣のセルの値を簡単に取得できるなら別にTOP位置のセル番地が取得できなくともかまいません。 Sub test01() MsgBox ActiveSheet.CheckBoxes(Application.Caller).Top End Sub

  • Access97VBAにてオブジェクトの説明欄の内容を取得したい

    ACCESS97のVBAにて開発をしています。 データベースウィンドウに表示される、各オブジェクトの説明欄の値(テーブルやフォームなど、オブジェクトを右クリック-プロパティにて、「説明」という欄に入力したもの)を取得したいのですが、指定の仕方がわかりません。 前提としては、Microsft DAO 3.5 Object Libraryを参照設定に追加してあります。 テーブル名やフォーム名は、DocumentオブジェクトのNameプロパティにて取得できたのですが・・・ ご存知の方がいらっしゃいましたら、是非教えてください。

  • VisibleとOpenFormは意味が同じ?

    データベースにフォームが1つあります。 標準モジュールに Sub Visible() Form_フォーム1.Visible = True End Sub Sub OpenForm() DoCmd.OpenForm "フォーム1" End Sub を作り、どちらも実行させても同じ動きをします。(フォームが開きます) この二つは同じ動きをすると思っていいのでしょうか?

  • 静的変数の現在溜まってる値を知る方法

    Sub 静的変数() Static x As Long x = x + 10 MsgBox x End Sub このプロシージャーを実行するとXの値がどんどん加算されていきますが マクロを実行してない時にxの値を取得する方法はありますか? スッテプインやウォッチウインドウで確認すれば、マクロ実行中にxの値を確認できますが マクロを実行してない時に調べる方法があれば教えてください。 ちなみにウォッチウインドウで見てみると 値は<対象範囲外> 型はEmptyとなります。 (もしマクロを実行してなきゃわからないというのであればそれでも大丈夫です)

専門家に質問してみよう