No.2ベストアンサー
- 回答日時:
#1です。
こっちの、なんちゃってバージョンの方が良いかも?
Sub fff()
Dim frmName As String
Dim frm As Form
frmName = "f_dmy" '適当なダミーフォーム
Application.Echo False '画面の描画をしない、ちらつき防止
DoCmd.OpenForm frmName
Set frm = Forms(frmName) 'フォームオブジェクトをセット
DoCmd.Maximize '最大化
Debug.Print frm.InsideWidth 'フォームのサイズ取得 Twip単位
DoCmd.Restore 'なくても構いません
DoCmd.Close
Set frm = Nothing '後始末
Application.Echo True '後始末、無いとAccessがだんまりに
End Sub
適当な空っぽのフォームを作り、名前を仮に、f_dmy にします。
このフォームを最大化してそのサイズを取得する流れです。
前回回答のAPIを使用した値は画面のピクセル数ですので
RightとLeftを引き算してそれを96で割って1440を掛けます。
なお、96dpi は規定値ですが変更が可能なので
このなんちゃってバージョンが簡単ですね (^^ゞ
1cm は約567Twipです。
No.1
- 回答日時:
作業領域のサイズはAccess2010で試したところ以下で取得できました。
標準モジュールにて
Public Declare Function FindWindowEX Lib "user32.dll" _
Alias "FindWindowExA" _
(ByVal hwndParent As Long, ByVal hwndChildAfter As Long, _
ByVal lpszClass As String, ByVal lpszWindow As String) As Long
'ウインドウ全体のサイズを取得
Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
'構造体
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Sub ww()
Dim myHd As Long
Dim Rc As RECT
Dim Ret As Long
myHd = Application.hWndAccessApp
myHd = FindWindowEX(myHd, 0, "MDIClient", vbNullString)
Ret = GetWindowRect(myHd, Rc)
'イミディエイトウィンドウに出力
Debug.Print "TOP: " & Rc.Top & " LEFT: " & Rc.Left & " RIGHT: " & Rc.Right & " BOTTOM: " & Rc.Bottom
End Sub
解説できるだけのスキルは持ち合わせていないのでご勘弁を。
参考になったところ
http://www.vbstation.net/sample/0207.htm
何に使うのかな?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ExcelVBAで、型が一致しませんのエラーについて 3 2023/06/20 09:51
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) エクセル VBAの構文について 2 2023/02/10 18:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Form_Load と Form_Activate の...
-
ユーザーフォームを表示中にシ...
-
'ユーザーフォーム右上隅の[×...
-
エクセルVBAのフォームを最...
-
VBAで画像を表示する方法
-
モーダルフォームとモードレス...
-
Hideについて(.NET)
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
クリックイベントなのに、2回ク...
-
ユーザーフォームのコピー?
-
ACCESSのフォーム、開くんです...
-
ExcelVBAのユーザーフォームの...
-
MSGBOXのフォント大きさ変更
-
複数モニタ使用時のフォームの...
-
Accessで、一つのフォーム画面...
-
指定の動作中ユーザーフォーム...
-
フォームに引数を渡す方法のやり方
-
フォームを最背面に設定したい...
-
ユーザーフォームのラベルに時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォームのテキストボ...
-
【VBAユーザーフォームで閉じる...
-
モーダルフォームとモードレス...
-
VBAでユーザーフォームを再表示...
-
エクセルVBAのフォームを最...
-
MSGBOXのフォント大きさ変更
-
Form_Load と Form_Activate の...
-
ユーザーフォーム上に現在日時...
-
Excelにて、ユーザーフォームで...
-
Hideについて(.NET)
-
フォームウィンドウを最前面に...
-
コントロールの存在確認
-
VBA(エクセル)のユーザー...
-
'ユーザーフォーム右上隅の[×...
-
エクセルVBA フォーム上でOnkey...
-
ブックをCloseまたはQuitで閉じ...
おすすめ情報