すでに存在するものを使用できる場合、必ずしもすべてを自分で発明する必要はありません。

Excelのほとんどの組み込みダイアログおよびOfficeの他のアプリケーションにアクセスできます。

ユーザーがブックを保存する場所を決定できるようにする場合は、組み込みのダイアログ[保存]を次のように表示できます。

Application.Dialogs(xlDialogSaveAs).Show

Excelでアクセス可能なすべてのダイアログのリストを取得するには、オブジェクトブラウザを使用します。

それを表示するには、モジュールをアクティブにしているときにF2を押します。ライブラリとしてExcelを選択し、xlDialogで始まる定数を探します…​

後でブックを開いたり保存したりするために使用するユーザーからファイル名を取得するだけの場合は、GetOpenFilenameメソッドまたはGetSaveAsFilenameメソッドを使用できます。どちらの方法でもそれぞれのダイアログが表示されますが、ユーザーがダイアログを確認したときにファイルを開いたり保存したりしないでください。

代わりに、メソッドは、ユーザーが開いたり保存したりするファイルに完全なファイル名を返します。

FullFileName = Application.GetOpenFilename("Excel files (.xl),.xl", _

1, "Custom Dialog Title", , False)

FullFileName = Application.GetSaveAsFilename("DefaultFilename.xls", _

"Excel files (.xl),.xl", 1, "Custom Dialog Title")

結果は、好きなように使用できます。後で次のように選択したブックを開くことができます:

Workbooks.Open FullFileName

または、次のようにブックを保存できます:

ActiveWorkbook.SaveAs FullFileName

ユーザーがFileOpenダイアログまたはFileSaveAsダイアログを確認すると、アクティブなフォルダーまたは現在のフォルダーも変更された可能性があるため、ユーザーがフォルダーを選択できるようにする簡単な方法として、これら2つの方法をよく使用します。ユーザーがフォルダを選択できるようにする別の方法は、[ファイルとフォルダ]セクションにあります。