Rem 选择文件-从注册表中获取
Function SG_BrowseForFileFromReg()
Dim shell: Set shell = CreateObject("WScript.Shell")
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim tempFolder: Set tempFolder = fso.GetSpecialFolder(2)
Dim tempName: tempName = fso.GetTempName()
Dim tempFile: Set tempFile = tempFolder.CreateTextFile(tempName & ".hta")
tempFile.Write _
"<html>" & _
"<head>" & _
"<title>Browse</title>" & _
"</head>" & _
"<body>" & _
"<input type='file' id='f' />" & _
"<script type='text/javascript'>" & _
"var f = document.getElementById('f');" & _
"f.click();" & _
"var shell = new ActiveXObject('WScript.Shell');" & _
"shell.RegWrite('HKEY_CURRENT_USER\\Volatile Environment\\MsgResp', f.value);" & _
"window.close();" & _
"</script>" & _
"</body>" & _
"</html>"
tempFile.Close
shell.Run tempFolder & "\" & tempName & ".hta", 0, True
SG_BrowseForFileFromReg = shell.RegRead("HKEY_CURRENT_USER\Volatile Environment\MsgResp")
shell.RegDelete "HKEY_CURRENT_USER\Volatile Environment\MsgResp"
fso.DeleteFile tempName & ".hta"
End Function
Rem 选择文件-从临时文件中获取
Function SG_BrowseForFileFromTxt()
Dim shell: Set shell = CreateObject("WScript.Shell")
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim tempFolder: Set tempFolder = fso.GetSpecialFolder(2)
Dim tempName: tempName = fso.GetTempName()
Dim tempFile: Set tempFile = tempFolder.CreateTextFile(tempName & ".hta")
Dim tempBaseName: tempBaseName = tempFolder & "\" & tempName
Rem 写HTML应用程序(hta)
tempFile.Write _
"<html><head><meta charset='UTF-8' /><title>Browse</title></head>" & _
"<body><input type='file' id='f'>" & _
"<script type='text/javascript'>" & _
" var f = document.getElementById('f');f.click();" & _
" var fso = new ActiveXObject('Scripting.FileSystemObject');" & _
" var file = fso.OpenTextFile('" & _
Replace(tempBaseName, "\", "\\") & ".txt" & "', 2, true, -1);" & _
" file.Write(' ' + f.value + ' '); file.Close(); window.close();" & _
"</script></body></html>"
tempFile.Close
shell.Run tempBaseName & ".hta", 1, True
Set tempFile = fso.OpenTextFile(tempBaseName & ".txt", 1, False, -1)
SG_BrowseForFileFromTxt = Trim(tempFile.ReadLine)
tempFile.Close
Rem 删除创建的临时文件
fso.DeleteFile tempBaseName & ".hta"
fso.DeleteFile tempBaseName & ".txt"
End Function
【SolidWorks宏】VBA 选择文件
最新推荐文章于 2024-07-15 09:57:48 发布