即効テクニック |
引数FileNameで指定したブックを開きます。パスを含むファイル名を指定した場合には、指定したフォルダのファイルを開き、パスを省略した場合には、カレントフォルダのファイルを開く動作になります。指定する引数はたくさんありますが、全てを同時に使うことはあり得ません。いくつかサンプルを示しますので、各引数の意味するところを理解してください。 構文 Object.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMRU) 設定項目 内容 FileName 開くブックのファイル名を指定 [省略不可] UpdateLinks リンクの更新方法を指定(表A参照) [省略可能] ReadOnly Trueで読み取り専用で開く。規定値はFalse [省略可能] Format テキストファイルを開く時の区切り文字指定 [省略可能] Password 読み取りパスワードを指定 [省略可能] WriteResPassword 書き込みパスワードを指定 [省略可能] IgnoreReadOnlyRecommended Trueで、読み取り推奨メッセージを非表示にする [省略可能] Origin 日本語版Excelでは指定は無効。テキストファイルの改行コード を正しく認識するために指定 [省略可能] Delimiter 開くファイルがテキストファイルで、引数Formatに6が指定されている 場合に、区切り文字を指定 [省略可能] Editable Excel 4.0 のアドイン、テンプレートの開き方を指定 [省略可能] Notify ReadOnlyにFalseを指定したが、書き込みモードで開けなかった場合の 処理を指定 [省略可能] Converter 最初に使うファイルコンバータのインデックス番号を指定 [省略可能] AddToMRU Trueで最近使ったファイルリストに追加 [省略可能] 次のサンプル1を見てください。 ●サンプル1●
Sub OpenSamp1() Dim myFLName As String myFLName = ThisWorkbook.Path & "\ブック操作\サンプル1.xls" '---(1) MsgBox "開くファイルは「" & myFLName & "」です" Workbooks.Open Filename:=myFLName, ReadOnly:=True '---(2) End Sub
引数UpdateLinksでは、リンクの更新方法を指定します。次の表Aを参照してください。 ・表A:引数UpdateLinksで指定するリンクの更新方法 値 外部参照 リモート参照 0 更新しない 更新しない 1 更新する 更新しない 2 更新しない 更新する 3 更新する 更新する 次のサンプル2は、外部参照、リモート参照ともに更新せずに、前回ファイルが保存された状態で開きます。 ●サンプル2●
Sub OpenSamp2() Dim myFLName As String ChDir ThisWorkbook.Path & "\ブック操作\" '---対象ブックのフォルダへ移動 myFLName = "サンプル2.xls" '---ファイル名だけ指定 Workbooks.Open Filename:=myFLName, UpdateLinks:=0 '---リンクを更新せずに開く End Sub
パスワードで保存されたブックを開く時には、サンプル3のように記述します。 ●サンプル3●
Sub OpenSamp3() Dim myFLName As String myFLName = ThisWorkbook.Path & "\ブック操作\サンプル4.xls" Workbooks.Open Filename:=myFLName, Password:="abcd", _ writerespassword:="efgh", AddToMru:=True End Sub
読み取りパスワード"abcd"、書き込みパスワード"efgh"でブックを開きます。さらに、引数AddToMruにTrueを指定することで、最近使用したファイル一覧にファイル名を追加します。 テンプレートの開き方に関しては引数Editableで指定します。Trueの場合は編集するためにファイルを開き、Falseの場合はテンプレートを元にして新規ファイルを作成します。規定値はFalseです。 ●ポイント● 引数Format、Delimiterではテキストファイルを開く際の区切り文字を指定しますが、テキストファイルを開くにはより細かい設定の可能なOpenTextメソッドを使用した方がよいでしょう。なお、CSVファイルはカンマ区切りのテキストファイルですが、引数Format、Delimiterの指定は必要ありません。次のサンプル4は指定した名前のCSVファイルを開きます。 ●サンプル4●
Sub OpenSamp4() Dim myFLName As String myFLName = ThisWorkbook.Path & "\ブック操作\test.csv" Workbooks.Open Filename:=myFLName End Sub
●注意● ある程度の大きさ以上のCSVファイルは、読み込みに非常に時間がかかります。 また、「001」のような文字列を読み込んだ場合には、数値の「1」と解釈されて取り込まれてしまいます。こういったケースを回避するには、ファイルの拡張子をCSV以外に変更して、OpenTextメソッドを使用してください。