none
Access ポップアップ表示位置(画面座標)でフォーム横幅を超えるには? RRS feed

  • 質問

  • Access で任意のメインフォームからポップアップ表示を出現させる場合、

    ポップアップフォームのロードイベント時にDoCmd.MoveSize 横位置, 縦位置で位置指定をしますが、

    横位置が31680twipを超えるエラーになってしまいます。

    これはフォーム幅限度が22インチ=31680twipに起因しているのはわかります。

    私のpc環境では2画面あり、たとえばメインフォームをセカンダリー画面に移動して操作したときに発生します。

    メイン画面から相対的にセカンダリー画面の31680twipを超えた位置に

    ポップアップフォームを出すにはどうすればよいですか。

    どなたか、わかる方がいれば、教えてくださらないですか。

    よろしくお願いします。

    2019年10月24日 12:11

すべての返信

  • Win32APIのMoveWindowで位置を指定してみる

    'Module1
    Option Compare Database
    
    Public Declare PtrSafe Function MoveWindow Lib "user32" _
        (ByVal hWnd As LongPtr _
        , ByVal X As Long _
        , ByVal Y As Long _
        , ByVal nWidth As Long _
        , ByVal nHeight As Long _
        , ByVal bRepaint As Long) As Long
    
    'フォーム
    Option Compare Database
    
    Private Sub Form_Load()
    '    Call DoCmd.MoveSize(31681, 0, 6000, 4500)
        Dim X As Long
        Dim Y As Long
        Dim w As Long
        Dim h As Long
        X = (31680 / 15) + 1
        Y = 0
        w = 400
        h = 300
        
        Call Module1.MoveWindow(Me.hWnd, X, Y, w, h, 0)
    End Sub


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2019年10月26日 0:59