質問: access vba でform位置を参照するプロパティ? access 97 vbaでプログラムを作ってます。 accessウインドウ内のform又はform内のcontrolをクリックした時に、accessウインドウ左上隅からformの左上角までの位置(left、top)を参照するためのプロパティを教えて下さい。 currentsectionleftとcurrentsectiontopは、form内での位置参照です。formそのものの位置を参照する方法は無いのでしょうか?
回答: プロパティは、ちょっとすぐには思いつきません。(無いかもしれません。) 私がやったときは、windows apiを使いました。 'フォームの宣言部 option explicit type rect left as long top as long right as long bottom as long end type private declare function getwindowrect lib "user32" (byval hwnd as long, lprect as rect) as long 'コマンド1押下時 private sub コマンド1_click() dim rectfrm as rect dim rectacc as rect call getwindowrect(me.hwnd, rectfrm) call getwindowrect(application.hwndaccessapp, rectacc) end sub こんな感じで分かりますか? rectfrm構造体には、フォームの位置情報が入っています。 rectacc構造体にはaccessのウインドウの位置情報が入っていると思います。 ってことで、accessのウインドウ位置からフォームのウインドウ位置を引き算すれば、相対位置が求まるような... (実はこの辺、試したのはかなり昔の話です。vbaコード自体には問題は無いはずですが、「引き算すれば」とかのお部分に関しては、それほど自信は無いです。 ってことで、申し訳ないですが、詳細な部分についてはご自身で確認してくださいませ。) ちなみに、単位はtwipsではなくて、ピクセルです。(windows apiを使っているので。)