1

複数のExcelファイルを結合するためにGetFolder関数を使用しています。

Folder = GetFolder()
Folder = Folder & "\"
FName = Dir(Folder & "*.xl*")
...

Function GetFolder()
     'Declare a variable as a FileDialog object.
  Dim fd As FileDialog

  'Create a FileDialog object as a Folder Picker dialog box.
  Set fd = Application.FileDialog(msoFileDialogFolderPicker)
  fd.Title = "Select Excel Workbook(s) Folder"
  'Declare a variable to contain the path
  'of each selected item. Even though the path is a String,
  'the variable must be a Variant because For Each...Next
  'routines only work with Variants and Objects.
  Dim vrtSelectedItem As Variant

  'Use a With...End With block to reference the FolderDialog object.
  With fd

    'Use the Show method to display the File Picker dialog box and return the user's action.
    'The user pressed the action button.
    If .Show = -1 Then

      'Step through each string in the FileDialogSelectedItems collection.
      For Each vrtSelectedItem In .SelectedItems

        'vrtSelectedItem is a String that contains the path of each selected item.
        'You can use any file I/O functions that you want to work with this path.
        'This example simply displays the path in a message box.
        GetFolder = vrtSelectedItem

      Next vrtSelectedItem
    'The user pressed Cancel.
    Else
    End If
  End With

  'Set the object variable to Nothing.
  Set fd = Nothing


End Function

この機能を有効にすると、Windows ブラウザー ウィンドウが開き、コンピューター上の必要なフォルダーを選択できるようになり、残りのコードに進むことができます。問題は、フォルダーを選択せず​​にブラウザーを閉じたいときです。上隅の閉じる (X) ボタンをクリックすると、ウィンドウは閉じますが、フォルダーを選択したかのようにコードが続きます。どうすればそれを閉じて「エンドサブ」にすることができますか?

4

1 に答える 1