教えて!ExcelVBA!

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

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

構文

構文は以下の通りです。

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

解説

Workbooks.Openは、Excelワークブックを開くために使用されます。このメソッドを使用すると、Excelファイル(.xlsx、.xlsm、.xlsなど)をプログラム内で開き、データの読み取りや書き込み、操作を行うことができます。

引数 指定 内容
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ファイルの自動化が可能になります。是非活用してください。