ユーザーがフォルダーの場所を選択し、そのすべての Excel ファイルをワークシートに追加するための画面をトリガーするボタンを Excel に作成しようとしています。
Sub Getsheets()
Path = GetFolder("N:\", "Select an Input Folder")
Filename = Dir(Path & "*.xlsm")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Application.DisplayAlerts = False
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
Function GetFolder(strPath As String, fldSt As String) As String
Dim fldr As FileDialog
Dim sItem As String
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = fldSt
.AllowMultiSelect = False
.InitialFileName = strPath
If .Show <> -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function
これが今までのやり方で、getfolder
関数を組み込まないと、指定したフォルダ内のすべての Excel ファイルを取得できますが、関数を入れると何も起こりません。この問題を解決するにはどうすればよいですか?