希望します。それに応じて外挿することができます。
Sub Openfile()
Dim MyFolder As String
Dim MyFile As String
'The code below opens up the specified folder.
'Replace the pathway with your own.
'Keep the explorer.exe string.
Call Shell("explorer.exe" & " " & "C:\Users\mvanover\Desktop\Test", vbNormalFocus)
'The code below opens up every excel file with .xlsx extension in the MyFolder path.
MyFolder = "C:\Users\mvanover\Desktop\Test"
MyFile = Dir(MyFolder & "\*.xlsx")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
MyFile = Dir
Loop
End Sub
更新:
あなたのマクロ有効ワークブックに位置する細胞内のすべてのフォルダ名の入力やマクロ内のオブジェクトにそれらの値を設定してもできました。シェル関数内の文字列の最後にそのオブジェクトを追加することができます。例を以下に示します。
Call Shell("explorer.exe" & " " & "C:\Users\mvanover\Desktop\Test\" & FolderName, vbNormalFocus)
次に、各フォルダ名を通過するような簡単なループを設定し、それに応じて開くことができます。ループ内のコードは、すべてを開く/ 1つのExcelブックを実行し、実行するコードを実行し、各フォルダを閉じることで構成されます。同様のフォルダを閉じるためのコードを以下に示します。
Private Const CLOSE_WIN = &H10
Dim Hwnd As Long
Private Declare Function apiFindWindow _
Lib "user32" Alias "FindWindowA" _
(ByVal lpClassname As String, _
ByVal lpWindowName As String) _
As Long
Private Declare Function apiPostMessage _
Lib "user32" Alias "PostMessageA" _
(ByVal Hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) _
As Long
申し訳ありません:
Call Shell("explorer.exe" & " " & "C:\Users\mvanover\Desktop\Test\" & FolderName, vbNormalFocus)
DoEvents
Hwnd = apiFindWindow("CabinetWClass", vbNullString)
Dim retval As Long
If (Hwnd) Then
retval = apiPostMessage(Hwnd, CLOSE_WIN, 0, ByVal 0&)
End If
が動作しませんだけでなく、あなたのサブステートメントの前に以下のコードまたは終値フォルダのコードを追加します。この新しいコードのすべてについて。実際には、フォルダを開くのに比べてフォルダを閉じるのがずっと難しくなります。私が終了コード F8でデバッグしていたときに動作します。