ワークブックを開くには Workbooks コレクションの Open メソッドを使用します。引数の数が多いですが、はじめのうちは FileName だけ覚えておけばよいです。その後必要に応じて他の引数を覚えていくようにしましょう。
Openメソッドの使用方法
引数名 | 省略 | データ型定数 | 説明 |
---|---|---|---|
FileName | × | 文字列型 (String) | 開くブックのファイル名(ファイルパス)を指定します。 |
UpdateLinks | ○ | バリアント型(Variant) | ファイル内のリンクの更新方法を指定します。 この引数を省略すると、リンクの更新方法を確認するメッセージがユーザーに表示されます。 1:リンクの更新方法をユーザが指定2:リンクを更新しない3:リンクを更新する |
ReadOnly | ○ | True / False | ブックを読み取り専用モードで開くには、True を指定します。 |
Format | ○ | バリアント型(Variant) | テキスト ファイルを開く場合は、この引数で区切り文字を指定します。 この引数を省略すると、現在の区切り文字が使用されます。 1:タブ2:コンマ(,)3:スペース4:セミコロン(;)5:なし6:カスタム文字 |
Password | ○ | バリアント型(Variant) | パスワード保護されたブックを開くのに必要なパスワードを指定します。 この引数を省略した場合、パスワードが必要なブックでは、パスワードの入力を促すダイアログ ボックスがユーザーに表示されます。 |
WriteResPassword | ○ | バリアント型(Variant) | 書き込み保護されたブックに書き込みをするために必要なパスワードを指定します。 この引数を省略した場合、パスワードが必要なブックでは、パスワードの入力を促すダイアログ ボックスがユーザーに表示されます。 |
IgnoreReadOnlyRecommended | ○ | True / False | [読み取り専用を推奨する] チェック ボックスをオンにして保存されたブックを開くときでも、読み取り専用を推奨するメッセージを非表示にするには、True を指定します。 |
Origin | ○ | バリアント型(Variant) | 開こうとしているファイルがテキスト ファイルの場合、それがどのような形式のテキスト ファイルかを指定します。 コード ページと CR/LF を正しく変換するために必要です。 XlPlatform クラスの定数 xlMacintosh、xlWindows、xlMSDOS のいずれかを使用します。 このファイルを省略すると、現在のオペレーティング システムの形式が使用されます。 |
Delimiter | ○ | バリアント型(Variant) | 開こうとしているファイルがテキスト ファイルで、引数 Format が 6 の場合は、この引数で区切り文字を使用します。 |
Editable | ○ | True / False | 開こうとしているファイルが Excel 4.0 のアドインの場合、この引数に True を指定すると、アドインがウィンドウとして表示されます。 この引数に False を指定するか、この引数を省略すると、アドインは非表示の状態で開かれ、ウィンドウとして表示することはできません。 |
Notify | ○ | True / False | ファイルが読み取り/書き込みモードで開けない場合に、ファイルを通知リストに追加するには、True を指定します。 ファイルが読み取り専用モードで開かれて通知リストに追加され、ファイルが編集可能になった時点でユーザーに通知されます。 ファイルが開けない場合に、このような通知を行わずにエラーを発生させるには、False を指定するか省略します。 |
Converter | ○ | バリアント型(Variant) | ファイルを開くときに最初に使用するファイル コンバータのインデックス番号を指定します。 |
AddToMru | ○ | True / False | 最近使用したファイルの一覧にブックを追加するには、True を指定します。 既定値は False です。 |
Local | ○ | True / False | Excel の言語設定 (コントロール パネルの設定を含む) に合わせてファイルを保存するには、True を指定します。 |
CorruptLoad | ○ | バリアント型(Variant) | 使用できる定数は、xlNormalLoad、xlRepairFile、xlExtractData のいずれかです。 この引数を省略した場合の既定の動作は、通常は標準の読み込み処理となります。 |
一連のチェックをしてからワークブックを開く
引数 FileName だけ指定してワークブックを開く例です。ワークブックを開く前に、既に開かれているかどうか(チェック①)、ファイルが存在するかどうか(チェック②)もチェックしています。
※ワークブック”test.xlsx”は以下のサンプルマクロが組み込まれたブックと同じフォルダ内にあるものとします。
Sub sample_eb083_01()
Dim TargetFile As String
Dim TargetFilePath As String
Dim flg_opened As Boolean
Dim i As Integer
'開きたいファイル名
TargetFile = "test.xlsx"
'TargetFileがマクロが組み込まれたブックと
'同じフォルダにあるものとしてファイルパスを作成。
TargetFilePath = ThisWorkbook.Path & "¥" & TargetFile
'★チェック① : 既に開かれていないかチェック
flg_opened = False
For i = 1 To Workbooks.Count
If Workbooks(i).Name = TargetFile Then
flg_opened = True
Exit For
End If
Next i
If flg_opened Then
'既に開かれている場合
MsgBox "『" & TargetFile & "』は既に開かれています。", _
vbExclamation
Else
'★チェック② : ファイルの存在チェック
If Dir(TargetFilePath) = "" Then
'ファイルが見つからない場合
MsgBox "『" & TargetFile & "』が見つかりません。", _
vbExclamation
Else
'ファイルが存在している場合はブックを開く
Workbooks.Open TargetFilePath
MsgBox "『" & TargetFile & "』を開きました。", _
vbInformation
End If
End If
End Sub
ThisWorkbook ワークブックの名前とパス
ワークブックCount
For…Next Exitステートメント MsgBox関数 Dir関数
ワークブック”test.xlsx”の配置が正しければ、初回のマクロ実行でこのブックを正常にオープンできるはずです。
“test.xlsx”を開いた状態で、再度マクロを実行すると以下のエラーが表示されます。
“test.xlsx”が存在しなかったり、配置場所に誤りがあると以下のメッセージが表示されます。