- ベストアンサー
VBA 開いているシート上にテキストファイルを開く
今晩は、質問させていただきます。どうぞよろしくお願いいたします。 環境:Win7+Excel2007 でございます。 今開いております「Book1」上に「シート1」「シート2」があるといたしまして、 「シート2」上に、「C:\ファイル1.txt」(←1000行程ございます)を 「1行ずつ読み込むのではなく、Workbooks.OpenTextのように一度に開く」事は可能でございますでしょうか?? 行数が多いのでReadLineをいたしますよりは、何か「開いているエクセルファイル上にテキストファイルをドラッグして開いた時のような方法」はないかな、と検索いたしておりまして、 OpenTextを見つけて試しましたが、新規エクセルファイル上で開いてしまいます。。。 もし何かよさそうな方法がございましたら、是非ともアドバイスいただきたく どうぞよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一般的なテキストファイルを前提に。 たとえば: sub macro1() dim FSO as object dim buf as string dim a as variant set fso = createobject("Scripting.FileSystemObject") with fso.getfile("C:\test\test.txt").openastextstream buf = .readall a = split(buf, vbcrlf) ’実際の改行コードに気を付ける worksheets("Sheet2").range("A1").resize(ubound(a) + 1, 1) = application.transpose(a) .close end with set fso = nothing end sub #OpenTextで開いた後に、たとえばシートごとブックに取り込むとか、ふつーにコピー貼り付ける等の方が遥かに簡単と思いますが。まぁお好みの方法で。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
「マクロの記録」は試しましたか?
お礼
bin-chan様 はい、別ファイルで開いてしまいますのと、 かつマクロ内にも何も記録されませんでした。 ご親切にどうもありがとうございました!!m(_ _)m
お礼
【解決☆】 keithin様 どうもありがとうございます!m(_ _)m 以前も助けていただいております^^ 残念ながらkeithin様のありがとうポイントキリ番(9万)とりそこねました。。。 本質問につきましては、keithin様のおかげでうまくいきました^^ で、今気づいたのでございますが、keithin様のコードって何故か頭文字が小文字ですので、全部ここ(OKWave上のテキストボックス)にソラで書かれておられるのでございましょうか(←VBEからコピペしたのではなく)。凄いですね(^ω^ もし自分が同じ事をやったら、1行に1個くらいのペースでバグを入れる自信が。。orz しかも動作確認なされていないところがまた(凄 余談でございましたm(_ _)m この度はご親切に誠にありがとうございました!!m(_ _)mm(_ _)m