訪問して頂きありがとうございます。まさふくろーです。
今回は、ファイルを選択するダイアログボックスを表示する方法をご紹介します。
目次
ファイルを選択するダイアログボックスを表示する
作成手順
「開発」タブの確認
ボタンの作成
①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。
シート上にカーソルを移動すると、ポインターが「+」の状態になります。
左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。
「マクロの登録」画面が表示されます。
①「マクロ名」を変更⇒②「新規作成」ボタンをクリックします。
自動的に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 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Sub ファイル選択() Dim SelectFile As String '選択したファイル名を格納する変数 With Application.FileDialog(msoFileDialogFilePicker) With .Filters '「ファイルの種類」をクリア .Clear '「ファイルの種類」を追加 .Add "Excelブック", "*.xls; *.xlsx; *.xlsm" .Add "テキストファイル", "*.txt" End With '複数選択を不可に設定 .AllowMultiSelect = False 'ダイアログボックスを表示 If .Show = True Then '「開く」ボタンを押された場合、ファイル名を取得する SelectFile = .SelectedItems(1) 'メッセージを表示 MsgBox "選択したファイルは" & SelectFile & "です。" 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:ダイアログ画面の種類を指定する。
|
||||||||||
例 | ファイルを選択するダイアログボックスを使用する場合 | ||||||||||
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" 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" 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 |
設定値 | 内容 | |
ボタン | 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 |
最後まで読んでいただき、ありがとうございました!