訪問して頂きありがとうございます。まさふくろーです。
この記事では、「ファイルを開く」ダイアログボックスを表示する方法をご紹介します。
目次
「ファイルを開く」ダイアログボックスを表示する
New OpenFileDialog()
インスタンス化したOpenFileDialog.ShowDialog()
プロパティ
内容
AddExtension
拡張子が入力されなかったとき、拡張子を自動的に付ける場合は「True」(既定値)、付けない場合は「False」。
CheckFileExists
存在しないファイルを指定されたとき、警告を表示する場合は「True」(既定値)、表示しない場合は「False」。
CheckPathExists
存在しないパスを指定されたとき、警告を表示する場合は「True」(既定値)、表示しない場合は「False」。
FileName
選択されたファイルパス(String型)。
FileNames
選択されたすべてのファイルパス(String型の配列)。
Filter
「ファイルの種類」のフィルタ。「フィルタ1の説明 | フィルタ1のパターン | フィルタ2の説明 | フィルタ2のパターン・・・」のように指定。
FilterIndex
「ファイルの種類」の最初に表示するフィルタ。既定値は「1」。
InitialDirectory
「ファイルの場所」に表示するパス。
Multiselect
複数のファイルを選択可能にする場合は「True」、複数選択不可の場合は「False」(既定値)。
ReadOnlyChecked
「読み取り専用ファイルとして開く」にチェックを付ける場合は「True」、付けない場合は「False」(既定値)。
SafeFileName
選択されたファイル名(拡張子は含む。)(パスは含まない。)
SafeFileNames
すべてのファイル名を要素とするString型の配列(拡張子は含む。)(パスは含まない。)
ShowHelp
「ヘルプ」ボタンを表示する場合は「True」、表示しない場合は「False」(既定値)。
ShowReadOnly
「読み取り専用ファイルとして開く」チェックボックスを表示する場合は「True」、表示しない場合は「False」(既定値)。
Title
ダイアログボックスのタイトルバーに表示する文字。
サンプルプログラム(1つのファイルを選択)
処理の流れ
サンプルプログラム
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 35 36 37 38 39 40 41 42 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim FilePath As String = String.Empty Dim SelectFile As String = String.Empty Dim Ret As DialogResult Try TextBox1.Text = String.Empty TextBox2.Text = String.Empty Label1.Text = String.Empty Using Dialog As New OpenFileDialog() With Dialog .Title = "ダイアログボックスのサンプル" .CheckFileExists = True .Filter = "テキストファイル|*.txt;*.csv|すべてのファイル|*.*" End With Ret = Dialog.ShowDialog() If Ret = DialogResult.OK Then TextBox1.Text = Dialog.FileName TextBox2.Text = Dialog.SafeFileName Label1.Text = "ファイルが選択されました。" End If End Using Catch ex As Exception Label1.Text = Err.Description End Try End Sub End Class |
2 | 「ファイルを開くダイアログボックスを表示」ボタンクリック時に以下処理を行う。 |
4 | ファイルパスを、文字列型の変数「FilePath」に代入。 |
10~12 | 各オブジェクトの初期化。 |
14 | 「ファイルを開く」ダイアログボックスのインスタンス化。(Usingステートメントでリソース開放を自動化) |
16~20 | ダイアログボックスの初期設定を行う。 |
22 | ダイアログボックスを表示する。 |
24 | ダイアログボックスで「開く」ボタンが押された場合、 |
26~27 | ファイル名を取得し、テキストボックスに表示する。 |
29 | 正常終了のメッセージをラベルに表示する。 |
35 | 処理の実行中にエラーが発生した場合、 |
37 | エラー内容を取得し、ラベルに表示する。 |
サンプルプログラム(複数のファイルを選択)
処理の流れ
サンプルプログラム
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim FilePath As String = String.Empty Dim SelectFile As String = String.Empty Dim Ret As DialogResult Try TextBox1.Text = String.Empty TextBox2.Text = String.Empty Label1.Text = String.Empty Using Dialog As New OpenFileDialog() Dim Str As String = String.Empty With Dialog .Title = "ダイアログボックスのサンプル" .CheckFileExists = True .Multiselect = True .Filter = "テキストファイル|*.txt;*.csv|すべてのファイル|*.*" End With Ret = Dialog.ShowDialog() If Ret = DialogResult.OK Then For Each FName As String In Dialog.FileNames Str &= FName & ControlChars.NewLine Next TextBox1.Text = Str Label1.Text = "ファイルが選択されました。" End If End Using Catch ex As Exception Label1.Text = Err.Description End Try End Sub End Class |
2 | 「ファイルを開くダイアログボックスを表示」ボタンクリック時に以下処理を行う。 |
4 | ファイルパスを、文字列型の変数「FilePath」に代入。 |
10~12 | 各オブジェクトの初期化。 |
14 | 「ファイルを開く」ダイアログボックスのインスタンス化。(Usingステートメントでリソース開放を自動化) |
18~23 | ダイアログボックスの初期設定を行う。 |
25 | ダイアログボックスを表示する。 |
27 | ダイアログボックスで「開く」ボタンが押された場合、 |
29 | ファイル名を取得し、取得した数だけ、以下処理を繰り返す。 |
31 | 取得したファイル名を、文字列型の変数「Str」に改行付きで追加していく。 |
35 | 変数「Str」の値をテキストボックスに表示する。 |
37 | 正常終了のメッセージをラベルに表示する。 |
43 | 処理の実行中にエラーが発生した場合、 |
45 | エラー内容を取得し、ラベルに表示する。 |
関連記事
「名前を付けて保存」ダイアログボックスを表示する
【VB.NET】「名前を付けて保存」ダイアログボックスを表示するには?
Usingステートメント
【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する
With...End Withステートメント
【VB.NET】同じオブジェクトや構造体を繰り返し処理する場合に記述を簡略化する方法
For Each...Nextステートメント
【VB.NET】コレクションまたは配列に対して処理を繰り返す方法
構造化例外処理
最後まで読んでいただき、ありがとうございました!