【EXCEL VBA】ファイルを選択するダイアログボックスを表示するには?

訪問して頂きありがとうございます。まさふくろーです。

今回は、ファイルを選択するダイアログボックスを表示する方法をご紹介します。

ファイルを選択するダイアログボックスを表示する

作成手順

「開発」タブの確認

リボンに「開発」タブが表示されているかの確認をします。

 

 

「開発」タブが表示されていない場合は、「開発タブの表示」をご覧ください。

ボタンの作成

①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。

 

 

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

 

 

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

 

 

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

 

 

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


 

MEMO
マクロ名は、どんな名前にしても問題ありませんが、処理と関係ある名前にしたほうが、コードを見る際にわかりやすくなります。

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


VBAコードの入力

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

 

 

入力するコードは以下になります。

ボタンの名前を変更する

エクセルのブックに戻り、ボタンの上にフォーカスを当てます。すると、ポインターが「」マークに切り替わります。

 

 

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

 

 

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

 

VBAコードの保存

「ファイル」タブをクリックします。

 

 

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

 

 

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

 

解説

Withステートメント

構文 With オブジェクト
 .オブジェクトに対する処理
 .オブジェクトに対する処理
End With
解説 「Withオブジェクト」から「End With」までの間は、Withオブジェクトで指定したオブジェクトの記述を省略できる。
「オブジェクトに対する処理」を記述するときは、「.プロパティ=設定値」「.メソッド」のように「.」(ピリオド)に続けてオブジェクトに対する処理を記述する。

セルA2~D2について、以下の処理を実行する。
1.フォントサイズを12ポイントにする。
2.太字にする。
3.左右中央にする。
4.Withステートメントを終了する。

Withステートメントを使用する場合
With Range("A2:D2")

   .Font.Size = 12
   .Font.Bold = True
   .HorizontalAlignment = xlCenter

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:ダイアログ画面の種類を指定する。

設定値 内容
msoFileDialogFolderPicker フォルダを選択する
msoFileDialogFilePicker ファイルを選択する
msoFileDialogOpen ファイルを開く
msoFileDialogSaveAs ファイルを保存する
ファイルを選択するダイアログボックスを使用する場合

With Application.FileDialog(msoFileDialogFilePicker)

    If .Show = True Then

        SelectFile = .SelectedItems(1)

        MsgBox "選択したファイルは" & SelectFile & "です。"

    End If

End With

[FileDialog]Filtersプロパティ

構文 Application.FileDialog(FileDialogType).Filters
解説 ダイアログボックスの「ファイルの種類」で選択できるファイルのパターンを表すFileDialogFiltersコレクションを返す。
With Application.FileDialog(msoFileDialogFilePicker).Filters

     .Clear

     .Add "Excelブック", "*.xls; *.xlsx; *.xlsm"
     .Add "テキストファイル", "*.txt"

End With

[FileDialog]Clearメソッド

構文 Application.FileDialog(FileDialogType).Filters.Clear
解説 ダイアログボックスの「ファイルの種類」にあらかじめ用意されているすべてのパターンをクリアする。
「ファイルの種類」をクリア
With Application.FileDialog(msoFileDialogFilePicker).Filters

     .Clear

End With

[FileDialog]Addメソッド

構文 Application.FileDialog(FileDialogType).Filters.Add
解説 ダイアログボックスの「ファイルの種類」に、新しいパターンを追加する。
「ファイルの種類」を追加

With Application.FileDialog(msoFileDialogFilePicker).Filters

     .Add "Excelブック", "*.xls; *.xlsx; *.xlsm"
     .Add "テキストファイル", "*.txt"

End With

[FileDialog]AllowMultiSelectプロパティ

構文 Application.FileDialog(FileDialogType).AllowMultiSelect
解説 複数ファイル選択を許可するかどうかを設定する。
True:複数ファイル選択可能、False:複数ファイル選択不可能
複数選択を不可に設定
With Application.FileDialog(msoFileDialogFilePicker)

    .AllowMultiSelect = False

End With

[FileDialog]Showメソッド

構文 FileDialog.Show
解説 ダイアログ画面を表示し、画面でクリックしたボタンに対応する戻り値を取得する。
「開く」ボタンまたは「保存」ボタンをクリックすると-1(True)、「キャンセル」ボタンをクリックすると0(False)が返る。
ダイアログボックスを表示。「開く」ボタンをクリックした場合。

With Application.FileDialog(msoFileDialogFilePicker)

    If .Show = True Then

        SelectFile = .SelectedItems(1)

    End If

End With

SelectedItemsプロパティ

構文 SelectedItems(Index)
引数 Index:1からはじまり2、3・・・と設定する。
解説 選択したファイルのパスを取得する。
Indexに1を指定すると1つ目のファイルのパス、2を指定すると2つ目のファイルのパスとなります。
  選択したファイルのパスを取得する。

Dim SelectFile As String

With Application.FileDialog(msoFileDialogFilePicker)

    If .Show = True Then

        SelectFile = .SelectedItems(1)

    End If

End With

MsgBox関数

構文 MsgBox(Prompt,[Buttons],[Title],[HelpFile],[Context])
解説 メッセージ文やアイコン、表示するボタンを指定してメッセージ画面を表示する。
引数Prompt以外をすべて省略すると、「OK」ボタンのみのメッセージ画面を表示する。
引数Buttonsで、表示するボタンとアイコン、標準ボタンを指定できる。(下表を参照)
ユーザーがクリックしたボタンによって、異なる戻り値が返る。(下表を参照)
主な
引数
Prompt:
メッセージ画面に表示する文字列を指定する。
文字列は、「"」(ダブルクォーテーション)で囲む。
Buttons:
ボタンとアイコン、標準ボタンの種類を指定する。
標準ボタンとは、あらかじめ選択状態にあるボタンで、Enterキーを押すことでクリックされたとみなされる。
Title:
メッセージ画面のタイトルバーに表示する文字列を指定する。
省略した場合は、「Microsoft Excel」と表示される。

 

 

「テストです」とメッセージを表示する(アイコン付き)。

MsgBox "テストです", vbOKOnly + vbInformation

「処理を実行しますか?」とメッセージを表示する(アイコン付き)。

「いいえ」ボタンを押された場合、処理を中断する。

If MsgBox("処理を実行しますか?", vbYesNo + vbInformation) = vbNo Then
 Exit Sub
End If

引数Buttonsの設定値

設定値 内容
ボタン vbOKOnly 「OK」ボタン
vbOKCancel 「OK」「キャンセル」ボタン
vbAbortRetryIgnore 「中止」「再試行」「無視」ボタン
vbYesNoCancel 「はい」「いいえ」「キャンセル」ボタン
vbYesNo 「はい」「いいえ」ボタン
vbRetryCancel 「再試行」「キャンセル」ボタン
アイコン vbCritical 警告メッセージアイコン
vbQuestion 問い合わせメッセージアイコン
vbExclamation 注意メッセージアイコン
vbInformation 情報メッセージアイコン
標準
ボタン
vbDefaultButton1 第1ボタンを標準ボタンに設定
vbDefaultButton2 第2ボタンを標準ボタンに設定
vbDefaultButton3 第3ボタンを標準ボタンに設定

ボタンの戻り値

クリックしたボタン 戻り値
OK vbOK 1
キャンセル vbCancel 2
中止 vbAbort 3
再試行 vbRetry 4
無視 vbIgnore 5
はい vbYes 6
いいえ vbNo 7

最後まで読んでいただき、ありがとうございました!