SQL.REQUEST 関数
適用対象: Microsoft Excel 2010, Excel Web App, SharePoint Online for enterprises, SharePoint Online for professionals and small businesses
このトピックに記載されている内容は、言語によっては適用されない場合もあります。
重要 SQL.REQUEST 関数は、Microsoft Office Excel 2007 ではサポートされません。これは、Excel 2002 アドインである ODBC (XLODBC.XLA) が Excel 2002 でしかサポートされないためです。
内容
外部データ ソースと接続し、ワークシートの SQL.REQUEST からクエリを実行して、マクロをプログラミングする必要なく、配列として結果を返します。この関数が使用できない場合、Microsoft Excel ODBC アドイン プログラム (XLODBC.XLA) をインストールする必要があります。アドイン プログラムのインストールは Microsoft Office Web サイトから実行できます。
書式
SQL.REQUEST(接続コード,[出力セル],[ダイアログ表示],[ステートメント],[列名表示])
SQL.REQUEST 関数の書式には、次の引数があります。
- 接続コード 必ず指定します。データ ソース名、ユーザー ID、パスワードなど、データ ソースへの接続に使用されるドライバーに必要な情報を、半角の二重引用符 (") で囲まれた文字列で指定します。ただし、指定するコードは使用するドライバーの書式に従う必要があります。次の表に、3 つの代表的なドライバーに対して使用される典型的な接続コードの例を示します。
ドライバー | 接続コード |
---|---|
dBASE | DSN=NWind;PWD=test |
SQL Server | DSN=MyServer;UID=dbayer; PWD=123;Database=Pubs |
ORACLE | DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame |
- 接続コードで使用するデータ ソース名 (DSN) は、データ ソースへ接続する前に定義しておく必要があります。
- 接続コードは、配列または文字列として入力できます。接続コードに指定する情報が半角 250 文字 (全角 125 文字) を超えるときは、配列として入力してください。
- 接続コードを使ってデータ ソースにアクセスできないときは、エラー値 #N/A が返されます。
- 出力セル 省略可能です。接続完了後に接続コードが配置されるセル参照を指定します。SQL.REQUEST をワークシートに入力した場合、出力セルは無視されます。
- 接続完了後に SQL.REQUEST から接続コードが返されるようにするときは、出力セルを指定します。この場合は、SQL.REQUEST をマクロ シートに入力する必要があります。
- 出力セルを省略した場合、接続完了後に接続コードは返されません。
- ダイアログ表示 省略可能です。ドライバーのダイアログ ボックスをいつ表示するか、またどのオプションを使用可能にするかを指定します。次の表から適切な数値を指定してください。ダイアログ表示を省略すると、既定値として 2 が使用されます。
ダイアログ表示 | 説明 |
---|---|
1 | ドライバーのダイアログ ボックスを常に表示します。 |
2 | 接続コードの情報とデータ ソースの指定だけでは接続を完了できない場合にのみ、ドライバーのダイアログ ボックスが表示されます。ダイアログ ボックスのオプションはすべて使用可能です。 |
3 | 接続コードの情報とデータ ソースの指定だけでは接続を完了できない場合にのみ、ドライバーのダイアログ ボックスが表示されます。ダイアログ ボックスのオプションのうち、必要のないものは淡色表示されて選択できません。 |
4 | ドライバーのダイアログ ボックスは表示されません。接続が失敗した場合は、エラー値だけが返されます。 |
"SELECT Name FROM Customers WHERE Balance > "&$A$3&"".
Excel で扱うことができる文字列は、半角 255 文字 (全角 127 文字) に制限されています。ステートメントで指定する文字列がこの制限を超えるときは、クエリを縦方向のセル範囲に入力し、範囲全体をステートメントとして使用します。各セルの値は連結され、SQL ステートメントとして再構成されます。
- 列名表示 省略可能です。戻り値の 1 行目に列名を表示させるかどうかを指定します。戻り値の 1 行目に列名を表示させる場合は、この引数を TRUE に設定します。列名が必要ないときは、FALSE に設定します。列名表示を省略すると、列名は返されません。
戻り値
解説
- SQL.REQUEST 関数は、配列数式としても入力できます。配列数式として入力した場合、入力範囲に合った配列が返されます。
- 配列数式を入力したセル範囲のサイズが戻り値の個数よりも大きい場合は、戻り値の配列に空白セルが追加され、自動的にセル範囲のサイズが調整されます。
- 戻り値の個数が配列数式を入力したセル範囲のサイズよりも多い場合は、すべての戻り値が配列として返されます。
- SQL.REQUEST 関数の引数の順序は、Visual Basic for Applications の SQLRequest 関数の引数の順序とは異なります。
使用例
dBASE データベースのデータ ソース DBASE4 へ接続してクエリを実行するとします。この場合、セル内の次の数式によって、1 行目に列名を含んだクエリの配列が返されます。
SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2, "Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)
Weblioに収録されているすべての辞書からSQL.REQUEST 関数を検索する場合は、下記のリンクをクリックしてください。

- SQL.REQUEST 関数のページへのリンク