QueryTables メソッド (Excel)QueryTables.Add method (Excel)

新しいクエリ テーブルを作成します。Creates a new query table.


追加(ConnectionDestinationSql)expression.Add (Connection, Destination, Sql)

QueryTables オブジェクトを表す変数を取得します。expression A variable that represents a QueryTables object.


名前Name 必須 / オプションRequired/Optional データ型Data type 説明Description
ConnectionConnection 必須Required バリアント型Variant クエリ テーブルのデータ ソース。The data source for the query table. 次のいずれかを使用できます。Can be one of the following:
  • OLE DB または ODBC の接続文字列を含む文字列。ODBC 接続文字列の形式は、"ODBC;<接続文字列>" です。 A string containing an OLE DB or ODBC connection string. ODBC 接続文字列には、フォーム"ODBC;<connection string>"があります。The ODBC connection string has the form "ODBC;<connection string>".
  • A QueryTable object from which the query information is initially copied, including the connection string and the SQL text, but not including the Destination range.A QueryTable object from which the query information is initially copied, including the connection string and the SQL text, but not including the Destination range. Specifying a QueryTable object causes the Sql argument to be ignored.Specifying a QueryTable object causes the Sql argument to be ignored.
  • ADO または DAO の Recordset オブジェクト。An ADO or DAO Recordset object. データは ADO または DAO レコードセットから読み取られます。Data is read from the ADO or DAO recordset. クエリ テーブルを削除するか、または接続を変更するまで、レコードセットは保持されます。Microsoft Excel retains the recordset until the query table is deleted or the connection is changed. 結果のクエリ テーブルは編集できません。The resulting query table cannot be edited.
  • Web クエリA web query. 必須ですがローカライズさ"URL;<url>"URL;ていない、残りの文字列が web クエリの URL として使用される、フォーム内の文字列。A string in the form "URL;<url>" where URL; is required but not localized and the rest of the string is used for the URL of the web query.
  • Data Finder.Data Finder. 必須ですがローカライズさ"FINDER;<data finder file path>"FINDER;ていない、フォーム内の文字列。A string in the form "FINDER;<data finder file path>" where FINDER; is required but not localized. The rest of the string is the path and file name of a Data Finder file (*.dqy or *.iqy).The rest of the string is the path and file name of a Data Finder file (*.dqy or *.iqy). Addメソッドを実行すると、ファイルが読み取られます。その後、クエリテーブルのConnectionプロパティを呼び出すと、必要にODBC;応じURL;て、またはで始まる文字列が返されます。The file is read when the Add method is run; subsequent calls to the Connection property of the query table will return strings beginning with ODBC; or URL; as appropriate.
  • テキスト ファイル。A text file. 必須ですがローカライズさ"TEXT;<text file path and name>"TEXT;ていない、フォーム内の文字列。A string in the form "TEXT;<text file path and name>" where TEXT; is required but not localized.
DestinationDestination 必須Required RangeRange クエリ テーブルの配置先の (結果のクエリ テーブルを配置する) セル範囲の左上端のセル。The cell in the upper-left corner of the query table destination range (the range where the resulting query table will be placed). 配置先のセル範囲は、expression で指定した QueryTables オブジェクトを含むワークシート上に存在する必要があります。The destination range must be on the worksheet that contains the QueryTables object specified by expression.
SqlSql OptionalOptional VariantVariant ODBC データソースで実行される SQL クエリ文字列。The SQL query string to be run on the ODBC data source. ODBC データソースを使用している場合は、この引数は省略できます (ここで指定しない場合は、テーブルが更新される前にクエリテーブルのSqlプロパティを使用して設定する必要があります)。This argument is optional when you are using an ODBC data source (if you don't specify it here, you should set it by using the Sql property of the query table before the table is refreshed). この引数は、 QueryTableオブジェクト、テキストファイル、または ADO または DAO のRecordsetオブジェクトがデータソースとして指定されている場合は使用できません。You cannot use this argument when a QueryTable object, text file, or ADO or DAO Recordset object is specified as the data source.

戻り値Return value

新しいクエリテーブルを表す**QueryTable** オブジェクト。A QueryTable object that represents the new query table.


このメソッドによって作成されたクエリは、 Refresh メソッドが呼び出されるまで実行されません。A query created by this method isn't run until the Refresh method is called.


次の使用例は、ADO レコードセットを基にクエリ テーブルを作成します。This example creates a query table based on an ADO recordset. ここでは、下位互換性のために既存の列の並べ替えとフィルターの設定、およびレイアウト情報を保持します。The example preserves the existing column sorting and filtering settings and layout information for backward compatibility.

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, _ 
With ActiveSheet.QueryTables.Add( _ 
        Connection:=rstRecordset, _ 
    .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

次の使用例は、新しいクエリ テーブルに固定幅のテキスト ファイルをインポートします。This example imports a fixed width text file into a new query table. テキスト ファイルの列 1 は 5 文字幅で、テキスト形式でインポートされます。The first column in the text file is five characters wide and is imported as text. 列 2 は 4 文字幅で、スキップされます。The second column is four characters wide and is skipped. テキスト ファイルの残りの部分は列 3 にインポートされ、一般の書式が適用されます。The remainder of the text file is imported into the third column and has the General format applied to it.

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) 
End With

次の使用例は、作業中のワークシートに新しいクエリ テーブルを作成します。This example creates a new query table on the active worksheet.

sqlstring = "select 96Sales.totals from 96Sales where profit < 5" 
connstring = _ 
With ActiveSheet.QueryTables.Add(Connection:=connstring, _ 
        Destination:=Range("B1"), Sql:=sqlstring) 
End With

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.