Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save toshiyukino/a4877697b69b1f6c837b5400fea8a4e9 to your computer and use it in GitHub Desktop.
Save toshiyukino/a4877697b69b1f6c837b5400fea8a4e9 to your computer and use it in GitHub Desktop.
vbのoledbプロバイダでExcel操作など

Excel2010以降をJetデータベースを使うには

ネットを見てもいろいろ書かれてて分かりにくい…。

Private m_sConn1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
               "Data Source=C:\ExcelData1.xls;" & _
               "Extended Properties=""Excel 8.0;HDR=YES"""
Private m_sConn2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
               "Data Source=C:\ExcelData2.xls;" & _
               "Extended Properties=""Excel 8.0;HDR=YES"""
Private m_sNorthwind = _
      "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb"
      string connString = 
        "Provider=Microsoft.ACE.OLEDB.12.0;" + 
        "Data Source=C:\\workbooks\\test.xlsx;" + 
        "Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";
上のコードで、接続文字列の Extended Properties="Excel 12.0 Xml;HDR=YES" の 
Excel 12.0 Xml の部分はソースデータベースの種類の指定です。HDR=YES は、シートの 1 行目がヘッダであることを指定します。

ソースデータベースの種類は、作成するブックの形式によって、以下のように変わります。
ブック形式	指定する DB 種類
xls	Excel 8.0
xlsx	Excel 12.0 Xml
xlsb	Excel 12.0
xlsm	Excel 12.0 Macro
Provider=Microsoft.ACE.OLEDB.12.0;Data Source={ファイルパス};Extended Properties="Excel {ISAMバージョン};HDR={YES/NO}";
ISAMバージョンには、Excel 2003までの形式には8.0を、Excel2007形式には12.0を指定します。
HDRは先頭行をヘッダとして扱うか否かの設定です。

Providerには従来までのJETドライバも使用できますが、その場合2007形式を読むことが出来ません。
Microsoft.ACE.OLEDB.12.0を利用する方が無難です。

あとjetプロバイダは今はあまり使われていないとか。 aceプロバイダらしい(Access2007以降)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment