環境
Windowsの仕様
エディション:Windows 10 Pro
バージョン:20H2
経緯
VBAを使って、ファルダを作成して、そのフォルダの中にExcelファイルを保存するプログラムを作ってみました。
実装したところ、私が書いたプログラムでは作成したフォルダを格納するフォルダのパスを決めていました。使ってみると、格納するフォルダは時々で変わることが判明しました。
なので、今回は格納するフォルダを決めるプログラムを勉強しました。
ダイアログボックス使う
早速ですが、コードを載せます。
Sub ダイアログボックスを使ってフォルダ選択() Dim SelectFolder As String With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then SelectFolder = .SelectedItems(1) MsgBox "選択したフォルダは" & SelectFolder & "ですよ。" End If End With End Sub
では、コードを説明します。*空白の行数は省略しています。
1行目、マクロの名前です。自分が分かれば、どんな名前でもいいと思います。
2行目、選択したフォルダ名を格納する変数です。
3行目 、ここから、With文がはじまります。”Application.FileDialog(msoFileDialogFolderPicker)”という構文を使ってダイアログボックスを呼びます。
4行目、ダイアログボックスを表示させています。 ここからIF文がはじまります。ダイアログボックスで”OK”を押すと、5行目に進みます。”キャンセル”を押すと7行目に飛びます。
5行目、ファルダ名を取得しています。
6行目 、メッセージボックスにメッセージを表示させています。
7行目 、IF文がおわります。
8行目、With文のおわります。
9行目、マクロがおわります。
次の展開
こんな感じで、ダイアログボックスを使って、格納するフォルダを決めることができました。
私の場合はこのコードのIF文の中身を「フォルダを作って、Excel保存する」というコードに変えています。
まとめ
今回はダイアログボックスを使って、格納するフォルダを決めるプログラムを勉強しました。
私は、「Application.FileDialog(msoFileDialogFolderPicker) 」という構文を使いましたが、()内には今回とは違った引数があるので、それも併せて勉強するものいいかもです。
ここまで読んでいただきありがとうございました。