[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでテキストファイル読み込み』(a-su)
マクロでテキストファイルを指定したセル(C3:K100)にデータを読み込みたいのですが、どのようにコードを作成すればいいでしょうか?
よろしくお願いします。
< 使用 Excel:unknown、使用 OS:unknown >
外部データでテキストファイルの取り込み、転記先 C3 を指定。
これをマクロ記録すれば、コードが生成されますよ。
(β) 2015/09/26(土) 17:06
テキストファイル VBA セル で検索してみました。
https://www.excel.studio-kazu.jp/cgi-bin/estindex/estseek2.cgi?phrase=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%80VBA%E3%80%80%E3%82%BB%E3%83%AB&perpage=10&attr=&order=&clip=-1&navi=0
(検索代行) 2015/09/26(土) 17:09
操作のサンプル。2003の画面でリボンではないのですが、2007以降は、データタブの左のほうにあります。
http://kokodane.com/tec3_13.htm
追加
2007以降なら https://support.office.com/ja-jp/article/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B-e8ab9ff3-be8d-43f1-9d52-b5e8a008ba5c
ここの、テキスト ファイルに接続してインポートする を参考に。
(β) 2015/09/26(土) 17:14
指定したファイルを読み込むにはどうしたらいいでしょうか?
(a-su) 2015/09/26(土) 17:25
消えないようにするにはどうしたらいいでしょうか?
Dim filename As String Dim myQT As QueryTable
filename = Application.GetOpenFilename(FileFilter:="csvファイル(*.csv),*.csv", _ Title:="csvファイルの選択")
If Sheets("入力").ListObjects.Count > 0 Then Sheets("入力").ListObjects().Delete End If
'外部テーブル範囲に取り込み Set myQT = Sheets("入力").QueryTables.Add( _ Connection:="TEXT;" & filename, _ Destination:=Sheets("入力").Range("k10"))
With myQT .AdjustColumnWidth = True .BackgroundQuery = False .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileSemicolonDelimiter = False .TextFileTabDelimiter = False .TextFileOtherDelimiter = "" .AdjustColumnWidth = False .BackgroundQuery = False .Refresh .Delete End With (a-su) 2015/09/26(土) 18:30
>>k1〜k9セルのデータが消えてしまいます。
消えますか? 右のほうに移動していませんか? この機能を使うと。取り込んだものが、シート上に【列挿入】されるようですね。 このオブジェクトのプロパティの RefreshStyle を xlOverwriteCells にすればいいのかなと試しましたが これでも、列挿入されてしまいます。
MSDNのxlOverwriteCellsの説明では
>>ワークシートに新しいセルまたは行を追加しません。オーバーフローしないように、周囲のセルのデータに上書きします。
と書いてはあるんですが・・・・
バグなのか仕様なのか、βにはわかりませんので、識者さんからのアドバイスがほしいところですね。
とりあえずは、作業シートに取り込んで、取り込んだものを、目的の場所に転記するか、 あるいは、ブックとして開いて必要領域を目的の場所に転記するか、 いずれかで対処する手はあると思いますけど。
(β) 2015/09/26(土) 19:16
そうですね、列が挿入されていました。原因がわかりませんでした。
(a-su) 2015/09/26(土) 19:18
プロパティセットの順番をかえると、なぜかうまくいきました。
With myQT
この下に
.RefreshStyle = xlOverwriteCells
を追加して試してみてください。
(β) 2015/09/26(土) 19:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.