excel vba呼叫windows API 快速查詢所選擇的檔案
excel選中檔名清單、自動從“a1"資料夾中查詢相應的檔案。
ShellExecuteA,DataObject,Clipboard,find,SendKeys
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _
String, ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long
Const SW_SHOW = 5
Sub test()
Selection.Copy
Dim MyData As DataObject
Dim sTemp As String, s As String
Set MyData = New DataObject
MyData.GetFromClipboard
sTemp = MyData.GetText
s = Replace(sTemp, vbCrLf, ";")
s = Replace(s, vbTab, ";")
MyData.SetText (s)
MyData.PutInClipboard
ShellExecute 0&, "find", Range("a1"), _
vbNullString, vbNullString, SW_SHOW
Application.Wait (Now + TimeValue("0:00:02"))
SendKeys s & "{ENTER}"
End Sub
excel vba呼叫windows API 快速查詢所選擇的檔案 excel選中檔名清單、自動從“a1"資料夾中查詢相應的檔案。 ShellExecuteA,DataObject,Clipboard,find,SendKeys Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _ String, ByVal lpszFile As String, ByVal lpszParams As String, _ ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long Const SW_SHOW = 5 Sub test() Selection.Copy Dim MyData As DataObject Dim sTemp As String, s As String Set MyData = New DataObject MyData.GetFromClipboard sTemp = MyData.GetText s = Replace(sTemp, vbCrLf, ";") s = Replace(s, vbTab, ";") MyData.SetText (s) MyData.PutInClipboard ShellExecute 0&, "find", Range("a1"), _ vbNullString, vbNullString, SW_SHOW Application.Wait (Now + TimeValue("0:00:02")) SendKeys s & "{ENTER}" End Sub