#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'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします


Copyright © T'sWare All rights reserved