ユーザーにディレクトリやファイルを選択してもらうためのユーザー定義関数です.

目次

  1. ディレクトリ選択
  2. ファイル選択

ディレクトリ選択

ユーザーにディレクトリを選択してもらう際,macとWindowsでは書き方が異なります.
フォルダのパスdirPathはOSごとに次のようにして選択させることができます.

Function ChooseDir()

Dim dirPath As String
If Application.OperatingSystem Like "*Mac*" Then
dirPath = MacScript("try" & vbCrLf & "return posix path of (choose folder with prompt ""ディレクトリを選択してください."") as string" & vbCrLf & "end try")
Else
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = 0 Then
MsgBox "ファイル選択がキャンセルされました.実行中のマクロを終了します."
End
End If
dirPath = .SelectedItems(1) & "¥"
End With
End If
ChooseDir = dirPath

End Function

macOS向けに分岐させた部分ではAppleScriptを使用しています.

ファイル選択

ファイル選択はOSに依存しません.
次はファイルを選択するダイアログを表示します.
返るのはフルパスです.

Function ChooseFile()

Dim filePath As String
filePath = Application.GetOpenFilename
If filePath = "False" Then
MsgBox "ファイル選択がキャンセルされました.実行中のマクロを終了します."
End
End If
ChooseFile = filePath

End Function