QueryTables.Add メソッド (Excel)
新しいクエリ テーブルを作成します。
構文
式。追加 (接続、 宛先、 Sql)
式QueryTables オブジェクトを表す変数。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
Connection | 必須 | バリアント型 (Variant) | クエリ テーブルのデータ ソース。 次のいずれかを使用できます。
|
宛先 | 必須 | Range | クエリ テーブルの配置先の (結果のクエリ テーブルを配置する) セル範囲の左上端のセル。 配置先のセル範囲は、expression で指定した QueryTables オブジェクトを含むワークシート上に存在する必要があります。 |
Sql | 省略可能 | バリアント型 (Variant) | ODBC データ ソースで実行される SQL クエリ文字列。 ODBC データ ソースを使用する場合、この引数は省略可能です (ここで指定しない場合は、テーブルが更新される前にクエリ テーブルの Sql プロパティを使用して設定する必要があります)。 QueryTable オブジェクト、テキスト ファイル、ADO または DAO Recordset オブジェクトがデータ ソースとして指定されている場合、この引数を使用することはできません。 |
戻り値
新しいクエリ テーブルを表す QueryTable オブジェクト。
注釈
このメソッドによって作成されたクエリは、 Refresh メソッドが呼び出されるまで実行されません。
例
次の使用例は、ADO レコードセットを基にクエリ テーブルを作成します。 ここでは、下位互換性のために既存の列の並べ替えとフィルターの設定、およびレイアウト情報を保持します。
Dim cnnConnect As ADODB.Connection
Dim rstRecordset As ADODB.Recordset
Set cnnConnect = New ADODB.Connection
cnnConnect.Open "Provider=SQLOLEDB;" & _
"Data Source=srvdata;" & _
"User ID=testac;Password=4me2no;"
Set rstRecordset = New ADODB.Recordset
rstRecordset.Open _
Source:="Select Name, Quantity, Price From Products", _
ActiveConnection:=cnnConnect, _
CursorType:=adOpenDynamic, _
LockType:=adLockReadOnly, _
Options:=adCmdText
With ActiveSheet.QueryTables.Add( _
Connection:=rstRecordset, _
Destination:=Range("A1"))
.Name = "Contact List"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
次の使用例は、新しいクエリ テーブルに固定幅のテキスト ファイルをインポートします。 テキスト ファイルの列 1 は 5 文字幅で、テキスト形式でインポートされます。 列 2 は 4 文字幅で、スキップされます。 テキスト ファイルの残りの部分は列 3 にインポートされ、一般の書式が適用されます。
Set shFirstQtr = Workbooks(1).Worksheets(1)
Set qtQtrResults = shFirstQtr.QueryTables.Add( _
Connection := "TEXT;C:\My Documents\19980331.txt",
Destination := shFirstQtr.Cells(1,1))
With qtQtrResults
.TextFileParsingType = xlFixedWidth
.TextFileFixedColumnWidths := Array(5,4)
.TextFileColumnDataTypes := _
Array(xlTextFormat, xlSkipColumn, xlGeneralFormat)
.Refresh
End With
次の使用例は、作業中のワークシートに新しいクエリ テーブルを作成します。
sqlstring = "select 96Sales.totals from 96Sales where profit < 5"
connstring = _
"ODBC;DSN=96SalesData;UID=Rep21;PWD=NUyHwYQI;Database=96Sales"
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Range("B1"), Sql:=sqlstring)
.Refresh
End With
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。