• ベストアンサー

SelectObjectされているフォーム

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

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

  • ベストアンサー
回答No.1

debug.Print screen.ActiveForm.Name debug.Print screen.ActiveControl.Name debug.Print screen.ActiveControl.Parent.name あたりをお試しください。 DoCmd.MoveSize・・・するまえに setfocus してからだと安心。 フォームなら If CurrentProject.AllForms("フォーム名").IsLoaded Then Forms!フォーム名.SetFocus 'docmd.MoveSize ・・・ End If

PIRTDHHPMORVV
質問者

お礼

ご回答ありがとうございます。

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

関連するQ&A

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

    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を設定してるのに、 その通りにならないのでしょうか?

  • 現在アクティブになっているオブジェクトを取得

    現在アクティブになっているオブジェクトを取得する方法は?アクセスです Sub マクロ() DoCmd.MoveSize 0, 0 End Sub でフォームの位置を指定できますが、 現在アクティブになって言えるオブジェクトに対して行われますよね。 例えばデータベースウインドウを選択した後に実行すれば データベースウインドウに対して行われますよね。 そこで現在アクティブなオブジェクト名を取得したいのですがそのようなコードはありますか? DoCmdをウォッチ式に追加して観察しましたが 現在アクティブなオブジェクト名は表示されませんでした。 DoCmd.SelectObjectacForm,フォーム1 でアクティブにできる事はしっています。ご回答よろしくお願いします。

  • サブフォームの新規レコードに移動したい アクセス

    親フォームのコマンドボタンをクリックしたら 親フォームにはまっているサブフォームの新規レコードに移動したいのですが、 うまくできません。 サブフォームのオブジェクト名は、"F_SubForm"です。 サブフォームはデータシートビューです。 VBAコードは Private Sub cmd_test_Click() DoCmd.SelectObject acForm, "F_SubForm" DoCmd.GoToRecord , , acNewRec End Sub です。 上記コードを実行すると DoCmd.SelectObject acForm, "F_SubForm" の部分で、 「実行時エラー 2489  オブジェクトが開いていません。」 となります。 だからと言って、 DoCmd.GoToRecord , , acNewRec だと、何も起こりません。(新規レコードに移動しません) 解決方法をご教授ください。

  • フォームのビューの設定をvbaでするには

    今はフォームビューで表示させていて、 フォーム上のコントロールをクリックすると、 Me.Controls("").Form.SetFocus は、 1が返ります。 Private Sub cmd_表示切替_Click() Debug.Print Me.CurrentView DoCmd.RunCommand acCmdDatasheetView End Sub みたいなことをしたいのですが、 これだとエラーになります。 上記コードはテストコードですが、 実はデータシートビューではなく、 単票フォームと帳票フォームをボタン一つで切り替えたいです。 Debug.Print Me.CurrentView で、現在のフォームの状態が取得できるから、 DoCmd.RunCommand acCmdDatasheetView このような方法で設定できれば、 ifステートメントで切り替えられると思うのですが、 設定の仕方がわからないので教えてください。

  • 全てのフォームを削除したい アクセス2010

    フォーム1とフォーム2がありまして、どちらもvbaで削除したいのですが Sub Sample() Dim obj As AccessObject For Each obj In CurrentProject.AllForms Debug.Print obj.Name & "を削除します" DoCmd.DeleteObject acForm, obj.Name Debug.Print obj.Name & "を削除しました" Next End Sub これを実行すると、フォーム2は削除できるのですが、 Nextの部分で、 実行時エラー'-2147467259(80004005)' オートメーションエラーです。エラーを特定できません。 と出て、 デバッグを押して再度実行すると、 実行時エラー92 for ループが初期化されていません にかわります。 デバッグウインドウには フォーム2を削除します フォーム2を削除しました が出力されます。 DoCmd.DeleteObject acForm, obj.Nameをなしにして、コードを実行すると、 フォーム2を削除します フォーム2を削除しました フォーム1を削除します フォーム1を削除しました が出力されます。 フォームを削除することによって順番が狂いエラーが発生するようですが、 そうであれば、どうすればすべてのフォームを削除することができるのでしょうか?

  • フォーム上のすべてのコマンドボタンの名前を取得

    エクセルvbaでフォームを開く時に、フォーム上のすべてのコマンドボタンの名前を取得したいのですが、 コードがわかりません。 Private Sub UserForm_Initialize() Dim objcmd As Object For Each objcmd In Me.ActiveControl Debug.Print objcmd.Name Next だと、Me.ActiveControlでエラーになります。 適切なコードを教えてください。

  • アクセスのフォームのサイズは何で決まるの?

    手作業でフォームを大きくしているのに 一度フォームを閉じると手作業で大きくしたサイズにはなりません。 VBAでDoCmd.MoveSizeはしてないです。 フォームのデザインビューで、詳細の高さを18cm位にしているのに、 いざフォームを表示させると10cm位になってしまい、中身が全部表示されません。

  • フォーム上の全てのコントロールを取得したい

    フォーム上の全てのコントロールを取得したいです。 (サブフォームも含め) 自分なりにVBAで考えてみたのがこれです。 Sub test() Dim 数 As Long For Each 数 In Form_フォーム1.Controls.Count ’Debug.Print ? End If Next End Sub でもこれだけでもデバックしてみると 「コンハ゜イルエラー for Eachは、コレクション オブジェクトまたは配列でのみ繰り返しを実行します。」 となります。 答えを教えてください! よろしくお願いします。 (アクセス2003です)

  • フォームが開かない

    「F説明」と言うフォームは存在しているし、ナビゲーションウインドウで、ダブルクリックすると、 フォームは開くのに、なぜかVBAで DoCmd.OpenForm Forms("F説明"), acNormal とすると "実行時エラー2498 指定した式は、 いずれか の引数とデータ型が対応していません。” となります。 このvbaコードは、"F説明"の部分を変数にして使いまわしたいので、ダブルコーテーションで囲える文法にしたいのですが、どこが間違っているのか教えていただけますか。

  • ACCESS フォームサイズ指定で エラー2465

    お世話になります。 ACCESS:2000 OS:xp データ参照フォームを作り、 検索フォームで入力したIDの情報を画面に表示させようとしています。 フォームサイズを DoCmd.Maximize としていると問題なく処理が動くのですが、 サイズを指定(DoCmd.MoveSize 1300, 500, 16025, 16500)すると、 エラー2465:「アプリケーション定義またはオブジェクト定義のエラーです。」 が出てしまい、原因がわかりません。 画面最大化でも問題はないのですが、可能であればサイズを調整したいと思っております。 ご指導いただければ、ありがたいです。 宜しくお願い致します。

専門家に質問してみよう