テキストファイルのインポートを自動化しようと、マクロ記録をしてみました。
このままじゃ、カスタマイズしづらいので、各プロパティの意味を表に...
折角作った表なので、こちらにもUPします。
何かの参考になれば幸いです。
≪マクロ記録≫
With ActiveSheet.QueryTables.Add(Connection:= "TEXT;C:\取得データ.TXT", Destination:=Range("A1"))
.Name = "取得データ"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
≪各プロパティの意味 Helpより≫
このままじゃ、カスタマイズしづらいので、各プロパティの意味を表に...
折角作った表なので、こちらにもUPします。
何かの参考になれば幸いです。
≪マクロ記録≫
With ActiveSheet.QueryTables.Add(Connection:= "TEXT;C:\取得データ.TXT", Destination:=Range("A1"))
.Name = "取得データ"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
≪各プロパティの意味 Helpより≫
FieldNames |
規定値 | True |
意味 | True の場合、データ ソースのフィールド名は、返されるデータの列見出しとして表示されます。既定値は True です。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
解説 | |
使用例 | 次の使用例は、フィールド名を非表示にするように、クエリ テーブル 1 を設定します。 Worksheets(1).QueryTables(1).FieldNames = False |
RowNumbers |
規定値 | |
意味 | True の場合、行番号は指定されたクエリ テーブルの最初の列として追加されます。値の取得および設定が可能です。ブール型 (Boolean) |
解説 | このプロパティに True を設定しても、行番号がすぐに表示されるわけではありません。次にクエリ テーブルを更新したとき、行番号は表示されます。クエリ テーブルを更新するたびに、行番号は再構成されます。 |
使用例 | 次の使用例は、クエリ テーブルに行番号とフィールド名を追加します。追加されるレコード番号は 0 から始まります。 With Worksheets(1).QueryTables("ExternalData1") .RowNumbers = True .FieldNames = True .Refresh End With |
FillAdjacentFormulas |
規定値 | |
意味 | True の場合、クエリ テーブルを更新するとき、指定されたクエリ テーブルの右側の数式を自動的に更新します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
解説 | |
使用例 | 次の使用例は、クエリ テーブルを更新するとき、クエリ テーブルの右側の数式を自動的に更新するように設定します。 Sheets("sheet1").QueryTables(1).FillAdjacentFormulas = True |
RefreshOnFileOpen |
規定値 | |
意味 | ピボットテーブル レポートでは、このプロパティが True の場合、ページ フィールド項目の移動、並べ替え、変更などの操作でレポートが更新または再計算されるとき、書式を維持します。 クエリ テーブルでは、このプロパティが True の場合、先頭の 5 行のデータに少しでも共通する書式をクエリ テーブルの新しい行のデータに適用します。未使用のセルは書式設定されません。このプロパティが False の場合、クエリ テーブルに最後に適用したオートフォーマットがクエリ テーブルの新しい行のデータに適用されます。既定値は True です。クエリ テーブルが Excel 97 で作成されたのではなければ、HasAutoFormat プロパティは True で、その場合 PreserveFormatting プロパティは False です。 値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
解説 | データベース クエリ テーブルの場合、既定の書式設定は xlSimple です。 新しいオートフォーマットの形式は、テーブルが更新されたときにクエリ テーブルに適用されます。PreserveFormatting プロパティに False を設定すると、オートフォーマットには "なし" が設定されます。このため、PreserveFormatting プロパティに False を設定する前、およびクエリ テーブルを更新する前に設定したオートフォーマットは無効になります。また、生成されるクエリ テーブルにもオートフォーマットは適用されません。 |
使用例 | 次の使用例は、ワークシート 1 のピボットテーブル レポートの書式を維持します。 Worksheets(1).PivotTables("Pivot1").PreserveFormatting = True 次の使用例は、オートフォーマットの書式を xlRangeAutoFormatColor1 の代わりに xlRangeAutoFormatNone に指定するため、PreserveFormatting プロパティを False に設定します。 With Workbooks(1).Worksheets(1).QueryTables(1) .Range.AutoFormat = xlRangeAutoFormatColor1 .PreserveFormatting = False .Refresh End With |
RefreshStyle |
規定値 | |||||||
意味 | 指定されたワークシートで行を追加または削除して、クエリが返すレコードセットの行数を受け取る方法を設定します。値の取得および設定が可能です。XlCellInsertionMode クラスの定数を使用します。 使用できる定数は、次に示す XlCellInsertionMode クラスのいずれかです。
|
||||||
解説 | |||||||
使用例 | 次の使用例は、シート 1 にクエリ テーブルを追加します。RefreshStyle プロパティは、データ結果を保持できるように、必要に応じてワークシートに行を追加します。 Dim qt As QueryTable Set qt = Sheets("sheet1").QueryTables.Add(Connection:="Finder;c:\myfile.dqy", _ Destination:=Range("sheet1!a1")) With qt .RefreshStyle = xlInsertEntireRows .Refresh End With |
SavePassword |
規定値 | |
意味 | True の場合、ODBC 接続文字列のパスワード情報は指定されたクエリと共に保存されます。False の場合、パスワードは削除されます。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
解説 | このプロパティは ODBC クエリにのみ影響します。 |
使用例 | 次の使用例は、クエリ テーブル 1 を保存するとき、ODBC 接続文字列からパスワード情報を削除します。 Worksheets(1).QueryTables(1).SavePassword = False |
SaveData |
規定値 | |
意味 | True の場合、ピボットテーブル レポートのデータをブックと共に保存します。False の場合、レポートの定義のみを保存します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します |
解説 | OLAP データ ソースの場合、このプロパティは常に False に設定されます。 |
使用例 | 次の使用例は、ピボットテーブル レポートのデータをブックと共に保存するように設定します。 Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable pvtTable.SaveData = True |
AdjustColumnWidth |
規定値 | True |
意味 | True の場合、指定したクエリ テーブルまたは XML マップの更新ごとに列幅を自動調節します。False の場合、更新ごとには列幅を自動調節しません。既定値は True です。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
解説 | 列幅の最大値は、画面幅の 3 分の 2 です。 |
使用例 | 次の使用例は、ブックの最初のワークシート 1 に新しく追加したクエリ テーブルの列幅を自動調節しないように設定します。 With Workbooks(1).Worksheets(1).QueryTables.Add(Connection:= varDBConnStr, _ Destination:=Range("B1"), Sql:="Select Price From CurrentStocks " & "Where Symbol = 'MSFT'") .AdjustColumnWidth = False .Refresh End With |
RefreshPeriod |
規定値 | |
意味 | 更新間隔を分単位で設定します。値の取得および設定が可能です。長整数型 (Long) の値を使用します。 |
解説 | 更新の間隔に 0 を設定すると、自動タイマ更新が無効になります。これは、このプロパティに Null 値を設定するのと同様です。 |
使用例 | 次の使用例は、ピボットテーブル キャッシュ (PivotTable3) の更新間隔を 15 分に設定します。 Set objPC = Worksheets("Sheet1").PivotTables("PivotTable3").PivotCache objPC.RefreshPeriod = 15 |
TextFilePromptOnRefresh |
規定値 | False |
意味 | True の場合、クエリ テーブルが更新されるたびにインポートするテキスト ファイル名を指定します。[テキスト ファイルのインポート] ダイアログ ボックスでパスとファイル名を指定します。既定値は False です。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
解説 | このプロパティは、クエリ テーブルがテキスト ファイルのデータに基づいている (QueryType プロパティが xlTextImport) 場合にのみ使用します。 このプロパティの値が True の場合、クエリ テーブルの最初の更新では [テキスト ファイルのインポート] ダイアログ ボックスが表示されません。 ユーザー インターフェイスでの既定値は True です。 |
使用例 | 次の使用例は、クエリ テーブルが更新されるときに、テキスト ファイル名を指定するダイアログ ボックスが表示されます。 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 .TextFileParseType = xlDelimited .TextFilePromptOnRefresh = True .TextFileTabDelimiter = True .Refresh End With |