訪問して頂きありがとうございます。まさふくろーです。
今回は、フォルダを選択するダイアログボックスを表示する方法をご紹介します。
目次
フォルダを選択するダイアログボックスを表示する

作成手順
「開発」タブの確認
ボタンの作成
①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。

シート上にカーソルを移動すると、ポインターが「+」の状態になります。

左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。

「マクロの登録」画面が表示されます。

①「マクロ名」を変更⇒②「新規作成」ボタンをクリックします。

自動的にVBE(Visual Basic Editor)が起動します。

VBAコードの入力
VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。

入力するコードは以下になります。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Sub フォルダ選択() Dim SelectFolder As String '選択したフォルダ名を格納する変数 With Application.FileDialog(msoFileDialogFolderPicker) 'ダイアログボックスを表示 If .Show = True Then 'OKボタンが押された場合、フォルダ名を取得する SelectFolder = .SelectedItems(1) 'メッセージを表示 MsgBox "選択したフォルダは" & SelectFolder & "です。" End If End With End Sub |
ボタンの名前を変更する
エクセルのブックに戻り、ボタンの上にフォーカスを当てます。すると、ポインターが「
」マークに切り替わります。

右クリックでショートカットメニューを表示し、「テキストの編集」を選択します。

ボタンの名前を変更します。

VBAコードの保存
「ファイル」タブをクリックします。

「名前を付けて保存」を選択し、ファイル保存画面を起動します。

①ファイル名を入力⇒②「Excel マクロ有効ブック(*.xlsm)」を選択⇒③「保存」ボタンをクリックします。

解説
Withステートメント
| 構文 | With オブジェクト .オブジェクトに対する処理 .オブジェクトに対する処理 End With |
| 解説 | 「Withオブジェクト」から「End With」までの間は、Withオブジェクトで指定したオブジェクトの記述を省略できる。 「オブジェクトに対する処理」を記述するときは、「.プロパティ=設定値」「.メソッド」のように「.」(ピリオド)に続けてオブジェクトに対する処理を記述する。 |
| 例 |
セルA2~D2について、以下の処理を実行する。
|
| Withステートメントを使用する場合 | |
| With Range("A2:D2")
.Font.Size = 12 End With |
|
| Withステートメントを使用しない場合 | |
| Range("A2:D2").Font.Size = 12 Range("A2:D2").Font.Bold = True Range("A2:D2").HorizontalAlignment = xlCenter |
|
| Withステートメントを使用しなくても問題ありませんが、なるべく同じことを書かないようにするためにも、Withステートメントを使用することをおすすめします。 |
FileDialogオブジェクト
| 構文 | Application.FileDialog(FileDialogType) | ||||||||||
| 解説 | ダイアログ画面を表すFileDialogオブジェクトを取得する。 | ||||||||||
| 引数 |
FileDialogType:ダイアログ画面の種類を指定する。
|
Showメソッド
| 構文 | FileDialog.Show |
| 解説 | ダイアログ画面を表示し、画面でクリックしたボタンに対応する戻り値を取得する。 「開く」ボタンまたは「保存」ボタンをクリックすると-1(True)、「キャンセル」ボタンをクリックすると0(False)が返る。 |
SelectedItemsプロパティ
| 構文 | SelectedItems(Index) |
| 引数 | Index:1からはじまり2、3・・・と設定する。 |
| 解説 | 選択したファイルのパスを取得する。 Indexに1を指定すると1つ目のファイルのパス、2を指定すると2つ目のファイルのパスとなります。 |
最後まで読んでいただき、ありがとうございました!



