|
おはようございます。
>現在ウィンドウズ・エクスプローラ上で選択されているファイル名をVBAから取得したい
一例として・・・、新規ブックにて試してください。
最初に上記新規ブックに参照設定にて、
「Microsoft Internet Controls」
「Microsoft Shell Controls And Automation」
上記二つにチェックを入れてください。
Thisworkbookのモジュールに
'===============================================================
Option Explicit
Private Declare Function BringWindowToTop Lib "USER32" (ByVal hWnd As Long) As Long
Private WithEvents ep As InternetExplorer
Private WithEvents flv As ShellFolderView
Sub main()
Call stt_folder("D:\My Documents\TESTエリア\testarea2002")
End Sub
'=======================================================
Sub stt_folder(ByVal mypath As Variant)
Set ep = CreateObject("InternetExplorer.Application")
With ep
.Visible = True
.MenuBar = False
.Navigate2 mypath
Do While .Busy = True Or .ReadyState <> 4
DoEvents
Loop
Set flv = .document
End With
End Sub
'=======================================================
Private Sub ep_OnQuit()
Set flv = Nothing
Set ep = Nothing
End Sub
'=======================================================
Private Sub flv_SelectionChanged()
Dim g0 As Long
Dim sitm As Object
For Each sitm In flv.SelectedItems
Cells(g0 + 1, 1).Value = sitm.Name
g0 = g0 + 1
Next
If g0 > 0 Then
ep.Quit
Else
Call BringWindowToTop(ep.hWnd)
End If
End Sub
これでThisworkbook.mainを実行してみてください。
指定されたフォルダが表示されえます。
適当に中のファイル(フォルダ)を選択して下さい。
選択されたファイル(フォルダ)名がアクティブシートのA列に
書き込まれます。
試してみてください
もっとも特定のフォルダから、ファイルを選択させたいという意味なら、
Application.GetOpenFilenameを使ったほうが簡単ですけどね!!
|
|