質問: Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1) '外部データ範囲(QueryTable)を更新。(上で作られたクエリはRefreshして初めて実行される。) .Refresh BackgroundQuery:=False 'QueryTableを削除してただのデータにする。 .Delete End With ```
回答: とりあえず出してもらったコードで動きますが... 再現方法 1. Sheet2のA8のセルに`D:\test.csv`と記入します。 2. D:\test.csvの中身を以下にします。 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, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 3. 以下のvbaをsheet1で走らせます。 ``` Sub test() '取込み対象CSVファイルパス取得 csvPath = Worksheets("Sheet2").Cells(8, 1).Value #<---ここを修正 '取込用シートを変数に入れる Set trSh = Worksheets("Sheet1") '前回データをクリア trSh.Cells.Clear 'CSV取込み処理 With trSh.QueryTables.Add(Connection:= _ "TEXT;" & csvPath _ , Destination:=Range("A1")) 'カンマ区切りでインポート .TextFileCommaDelimiter = True 'テキストファイルの各列に適用されるデータ型を指定する定数を配列形式で設定。 .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1) '外部データ範囲(QueryTable)を更新。(上で作られたクエリはRefreshして初めて実行される。) .Refresh BackgroundQuery:=False 'QueryTableを削除してただのデータにする。 .Delete End With End Sub ```