8.2 エクセルやCSVを開く
 ADOを使ってエクセルファイルを開くときの方法です。ADOオブジェクトのOpenというメソッドで行います。開くときの指定方法が何種類かありますが、ODBCデータソースを使う場合と使わない場合の基本的な方法を紹介します。

 それと、やはり開きっぱなしというのも良くないので、使い終わったファイルは閉じましょう。閉じる場合は、ADOオブジェクトのCloseというメソッドで行います。

 なお、ADOはデータを扱うための機能なので、エクセル固有の機能(書式設定など)は使えません。
XLSファイルを使う場合
 Openメソッドのパラメタに、使用するドライバ名(エクセルドライバ)とXLSファイルのフルパス、更新有無を指定する方法です。ODBCデータソースの定義は使いません。

 更新有無の指定はReadOnlyで行います。読み込みだけ行えれば良いときはReadOnly=1を指定、更新も行いたいときはReadOnly=0を指定します。

 例では、ADOを使いc:\happy\ADO_EXCEL.xlsというXLSファイルを更新モードでオープン(@)しています。パラメタは、Driver=にエクセルのドライバ名、DBQ=にXLSファイルの場所(パス)、ReadOnly=に更新モード(0)を指定しました。また、それぞれを; 記号で区切ります。

 閉じるとき(A)のCloseは、パラメタはありません。

 ■VBScriptでの記述例
Option Explicit

Dim objADO

'ADOオブジェクトを作成します
Set objADO = CreateObject("ADODB.Connection")

'@ADOを使いXLSを更新モードでオープンします。
objADO.Open "Driver={Microsoft Excel Driver (*.xls)}; " & _
             "DBQ=c:\happy\ADO_EXCEL.xls;" & _
             "ReadOnly=0"

'AADOをクローズします
objADO.Close

Set objADO = Nothing
 ※ドライバ名の空白は多くても少なくてもダメです。正確に指定しましょう。

 ■JScript(JavaScript)での記述例
//ADOオブジェクトを作成します
var objADO = new ActiveXObject("ADODB.Connection");

//@ADOを使いXLSを更新モードでオープンします。
objADO.Open("Driver={Microsoft Excel Driver (*.xls)}; " +
             "DBQ=c:\\happy\\ADO_EXCEL.xls;" +
             "ReadOnly=0");

//AADOをクローズします
objADO.Close();

objADO = null;
 ※ドライバ名の空白は多くても少なくてもダメです。正確に指定しましょう。
CSVファイルを使う場合
ちなみに、CSVファイル(テキストファイル)を開くときはドライバ名に{Microsoft Text Driver (*.txt; *.csv)}を指定します。CSVファイルの場合はDBQ=の所へファイル名は指定せず、使いたいCSVファイル(テキストファイル)が入っているフォルダをフルパスで指定します。なお、更新有無の指定(ReadOnly)はワークブックを開くときと同じですが、CSVで可能なのは追加のみです。

次の例では、c:\happyというフォルダの中に入っているCSVファイル(テキストファイル)が、更新モードで扱えるようになります。

 ■VBScriptでの記述例
Option Explicit

Dim objADO

'ADOオブジェクトを作成します
Set objADO = CreateObject("ADODB.Connection")

'@ADOを使い更新モードでCSVファイルを扱う準備(オープン)を行います
objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
             "DBQ=c:\happy;" & _
             "ReadOnly=0"

'AADOをクローズします
objADO.Close

Set objADO = Nothing
 ※ドライバ名の空白は多くても少なくてもダメです。正確に指定しましょう。

 ■JScript(JavaScript)での記述例
//ADOオブジェクトを作成します
var objADO = new ActiveXObject("ADODB.Connection");

//ADOを使い更新モードでCSVファイルを扱う準備(オープン)を行います
objADO.Open("Driver={Microsoft Text Driver (*.txt; *.csv)}; " +
             "DBQ=c:\\happy;" +
             "ReadOnly=0");

//AADOをクローズします
objADO.Close();

objADO = null;
 ※ドライバ名の空白は多くても少なくてもダメです。正確に指定しましょう。
ODBCデータソースを使う場合
 Openメソッドのパラメタに、ODBCデータソース名を指定する方法です。この方法では、ODBCデータソースへドライバ(Excelドライバやテキストドライバ)とXLSファイルの場所(CSVのときはファイルが保存してある場所)のフルパス、更新モードをあらかじめ定義しておく必要があります。

 例では、ADOを使いODBCデータソースに定義してあるADXLSというデータソースをオープン(@)しています。例えば、ADXLSc:\happy\ADO_EXCEL.xlsというXLSファイルの情報が定義しておけば、このXLSファイルをオープンすることになります。

 閉じるとき(A)のCloseは、パラメタはありません。

 ちなみに、ODBCデータソースですが、登録する場所にユーザDSNとシステムDSNの2種類あります。何が違うか知りたい人は『6.6 ユーザDSNとシステムDSNの違い』をどうぞ。

 ■VBScriptでの記述例
Option Explicit

Dim objADO

'ADOオブジェクトを作成します
Set objADO = CreateObject("ADODB.Connection")

'@ADOを使いADXLSというデータソースをオープンします。更新モードはODBCの定義に従います。
objADO.Open "DSN=ADXLS;"

'AADOをクローズします
objADO.Close

Set objADO = Nothing

 ■JScript(JavaScript)での記述例
//ADOオブジェクトを作成します
var objADO = new ActiveXObject("ADODB.Connection");

//@ADOを使いADXLSというデータソースをオープンします。更新モードはODBCの定義に従います。
objADO.Open("DSN=ADXLS;");

//AADOをクローズします
objADO.Close();

objADO = null;
 ※ドライバ名の空白は多くても少なくてもダメです。正確に指定しましょう。
Copyright(C) 1999-2006 結城圭介。 All rights reserved