#226 ファイルのプロパティダイアログを開く VBA、API

エクスプローラでの操作画面WindowsAPIを使うことによって、エクスプローラのショートカットメニューの[プロパティ]によって表示されるのと同じ、ファイルの「プロパティダイアログ」を表示させることができます。


まず、標準モジュールのDeclarationsセクションに次のようなコードを記述します。
Private Type SHELLEXECUTEINFO
  cbSize As Long
  fMask As Long
  hWnd As Long
  lpVerb As String
  lpFile As String
  lpParameters As String
  lpDirectory As String
  nShow As Long
  hInstApp As Long
  lpIDList As Long
  lpClass As String
  hkeyClass As Long
  dwHotKey As Long
  hIcon As Long
  hProcess As Long
End Type

Private Const SEE_MASK_INVOKEIDLIST = &HC
Private Const SEE_MASK_NOCLOSEPROCESS = &H40
Private Const SEE_MASK_FLAG_NO_UI = &H400

Private Declare Function ShellExecuteEx Lib "Shell32.dll" _
                (lpExecInfo As SHELLEXECUTEINFO) As Long

プロパティダイアログを表示する機能がさまざまなフォーム/モジュールから呼び出されることを前提に、標準モジュールに次のような汎用のプロシージャを作成します。
Public Sub ShowPropDialog(strFileName As String)
'ファイルのプロパティダイアログを開く

  Dim udtShExInf  As SHELLEXECUTEINFO

  With udtShExInf
    .cbSize = Len(udtShExInf)
    .fMask = SEE_MASK_INVOKEIDLIST Or _
              SEE_MASK_NOCLOSEPROCESS Or _
              SEE_MASK_FLAG_NO_UI
    .hWnd = Application.hWndAccessApp
    .lpVerb = "Properties"
    .lpFile = strFileName
  End With

  ShellExecuteEx udtShExInf

End Sub

使用例:
Sub test()

  ShowPropDialog "c:\db1.mdb"

End Sub
ファイルのプロパティダイアログ
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved