• ベストアンサー

お世話になってます。

お世話になってます。 エクセルのマクロにて以下の内容を行ないたいので、質問させて頂きます。 ■Sheet1の内容 ・セルA1にはディレクトリが記入されている(C:\test\) ・セルA2にはファイル名が記入されている(test.txt) ・C1~C1000まで、値が入っている ・D1~D1000まで、値が入っている ■やりたい事 ・C1~D1000までのセルの内容をタブ区切りでテキストに吐き出したい ・吐き出す場所とファイル名は、A1とA2の内容を参照させる 上記の内容を行なうのに、簡易的なマクロの例を教えていただきたいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

ファイルをOutputモードでOpenし、間にvbTabを挟んだ文字列をPrintで書き込んで、最後にCloseでファイルを閉じます。 タブ区切りの例は少ないと思いますが、カンマ区切りやスペース区切りの例ならネット上にたくさんあると思いますよ。 Sub Sample()   Dim nFile As Integer   nFile = FreeFile   Open Range("A1").Value & Range("A2").Value For Output As #nFile   For i = 1 To 1000     Print #nFile, Cells(i, 3).Text & vbTab & Cells(i, 4).Text   Next i   Close #nFile End Sub

bpandaman_goo
質問者

お礼

ご丁寧に回答していただき、ありがとうございました。 手前で参考サイトを幾つもみていたのですが、 セルの指定の書式が根本的に間違っておりました。 Range("A1" & "A2") などという記述ではダメなのですね。 今回はありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

やりたいからコードを全部回答者で作れ、でなく、自分で何処まで知っていて、勉強し、何処がうまく行かないとか、ここが分らないかなどを聞く形でここを使ってほしい。 必要なスキルは (1)フォルダとファイル名(.CSV)を指定して、新規のファイルをオープンするコード (2)多分最終行を捉えるコードが必要だろう(1000ときっちり決っているの?) (3)データは、数値は数字文字列にして、文字列は文字列のままで、間にカンマ1つを挟んだ文字列を作る。 その列のデータが空白の場合はカンマだけを入れるとか、色々考えかたは在る。 Googleででも「CSV 出力 VBA」で照会すれば、沢山の記事(例示)が出てくる 例 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_050.html はか多数。 こんな照会もせず、直ぐここへ質問しているのでは。 ーー 新規のファイルをオープンは「新規CSV ファイル オープン」などで照会して http://www.accessclub.jp/bbs3/0388/superbeg115589.htmlなど Open "C:\Develop\Work\Test.csv" For Output As #1 ーー 最終行は {エクセルVBA 最終行」で照会して http://www.happy2-island.com/excelsmile/smile03/capter00702.shtml など

bpandaman_goo
質問者

お礼

回答ありがとうございます。 今後肝に銘じておきます。

関連するQ&A