[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAで接続ファイルを更新したい』(ラジヲ)
お世話になっております。
毎月作成される、名前に日付が入った複数のテキストファイルを
データタブの「テキストファイル」を使ってエクセルに読み込ませています。
毎月その月に作成されたテキストファイルにプロパティから手動で変更しています。
作業をマクロの記録から作成したものが以下の内容になります。
With ActiveWorkbook.Connections("【接続名】") .Name = "【接続名】" .Description = "" End With Range("A1:EB352").Select
With Selection.QueryTable .Connection = "TEXT;【ファイル名】" .TextFilePlatform = 932 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With ActiveWorkbook.Connections("【接続名】").Refresh
With Selection.QueryTable
.Connection = "TEXT;【ファイル名】"
質問させて頂きたいのはここの部分でSelectionを名指しにしたいのです。
マクロの実行は日付等の読み込み用情報を入力するシートからのため、
現在は
〜
Sheets("【元のシート名】").Select
Range("A1").Select
Application.ScreenUpdating = true
と書いて更新したいデータがあるシートに移動してから
終わったら戻るという形を取っています。
個人的なこだわりでselectを使うのが嫌いなので
シート移動せずに更新する方法を探していたので見つからず質問させて頂いた次第になります。
よろしくお願い致します。
< 使用 Excel:Excel2010、使用 OS:unknown >
まず、該当のブックを開いて、イミディエイトウィンドウ上で以下を表示してみてください。
? Sheets("【シート名】").QueryTables.Count
QueryTable が1つだけなら、1と返ったはず。
そうであれば、With文の部分を、以下のように変えられないでしょうか?
With Sheets("【シート名】").QueryTables(1) (???) 2017/12/14(木) 17:27
早速実行してみた所、無事実行する事ができました。
前に調べたサイトにも解は載っていたようでしたが、
(1)の意味が理解できず(ここに接続名とか色々入れてました……)、
間違った方向に努力をしていたようです。
これですっきりした内容にできそうです。
ありがとうございました!
(ラジヲ) 2017/12/14(木) 17:55
考えたら(1)も試したはずなのになんでだろう……?と思い、
改めてよく見た所、sの有無が原因だったようです。
QueryTable → QueryTables
記録で生成されたsが付いてないものに対して
色々やってたのが原因でした。
(ラジヲ) 2017/12/14(木) 18:02
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.