教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA ブック操作】ブックを開く(Open)にはどうすればいいの?教えて!

Excelファイルを開くためには「Workbooks.Open」を使います。

構文

構文は以下の通りです。

Workbooks.Open(Filename, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

【解説】

・Filename:開きたいファイルのパスを指定します。例えば、「C:\test.xlsx」などです。相対パスやUNCパスを指定することもできます。
・UpdateLinks:更新リンクのモードを指定します。省略すると既定値で「True」となります。Falseを指定すると、更新リンクを無視してファイルを開くことができます。
・ReadOnly:読み取り専用でファイルを開くかどうかを指定します。省略すると既定値で「False」となります。Trueを指定すると、読み取り専用でファイルを開くことができます。
・Format:ファイルのフォーマットを指定します。省略すると既定値で「-4143」となります。詳しくは、Excelがサポートしているファイルフォーマットに関する情報を参照してください。
・Password:パスワードが設定されている場合に、ファイルを開くためのパスワードを指定します。
・WriteResPassword:ファイルが書き込み保護されている場合に、書き込み保護を解除するためのパスワードを指定します。
・IgnoreReadOnlyRecommended:ファイルが読み取り専用と推奨されている場合でも、ファイルを書き込み可能な状態で開くかどうかを指定します。
・Origin:文字コードを指定します。省略すると既定値で「-535」(システムの現在の文字コード)となります。
・Delimiter:テキストファイルの区切り文字を指定します。
・Editable:ファイルを編集可能な状態で開くかどうかを指定します。
・Notify:別のユーザーによってファイルが開かれている場合に、通知を表示するかどうかを指定します。
・Converter:ファイルを開くために使用するコンバーターのインデックスを指定します。
・AddToMru:最近使用したファイルのリストにファイルを追加するかどうかを指定します。
・Local:外部ファイルに依存する場合、外部ファイルのリンクの場所をローカルにするかどうかを指定します。
・CorruptLoad:破損したファイルを開く際に、警告を表示するかどうかを指定します。省略すると既定値で「False」となります。

使い方

Workbooks.Openを使うには、まずExcelVBAのプロシージャ内で以下のように記述します。

Dim wb As Workbook
Set wb = Workbooks.Open(Filename, ReadOnly)

この例では、ファイル名と読み取り専用属性を指定して、Excelファイルを開いています。また、変数「wb」に開いたブックを格納しています。

プログラミング例

以下は、Workbooks.Openを使ったサンプルコードです。例えば、特定のExcelファイルにある特定のセルの値を取得する場合に使うことができます。

Sub GetValueFromFile()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim FilePath As String
    Dim Value As String
    'ファイルのパスを指定
    FilePath = "C:\test.xlsx"
    'ブックを開く
    Set wb = Workbooks.Open(FilePath, ReadOnly:=True)
    Set ws = wb.Sheets("Sheet1")
    'セルの値を取得
    Value = ws.Range("A1").Value
    'ブックを閉じる
    wb.Close SaveChanges:=False
    '結果を表示
    MsgBox Value
End Sub

この例では、ファイル「test.xlsx」を読み取り専用で開き、Sheet1にあるセルA1の値を取得しています。最後に、結果をメッセージボックスで表示しています。

まとめ

引数を指定することで、ファイルのパスやフォーマット、読み取り専用属性などを設定することができます。また、Workbooks.Openを使うことで、Excelファイルの自動化が可能になります。