• ベストアンサー

EXCELで縦に並んだデータをテキストファイルでカンマ、シングルクォテ

EXCELで縦に並んだデータをテキストファイルでカンマ、シングルクォテーションで区切り横一列に並べ変えたい。 縦に KNTTT1 NINOH2 NIHOK3 というようなコードが縦に並んでいるEXCELデータをテキストへ'KNTT1','NINOH2','NIHOK3'という形でエクスポートさせたいのです。 VBAは初心者ですが継続的に使用するのでVBAなどのプログラムで作成できたらと考えております。 よろしくお願いします。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

●テキストファイルを操作する http://officetanaka.net/excel/vba/file/file08.htm の「Sub Sample21()」あたりを少し弄ると、こんな感じになろうかと存じます。  結果は Dドライブ の直下に「Test.txt」という テキストファイル が生成されます。 Sub Sample21()  Dim myArr As Variant  Dim n As Long  myArr = Range("A1:A10")  n = FreeFile  Open "D:\Test.txt" For Output As #n   Print #n, "'" & Join(Application.WorksheetFunction.Transpose(myArr), "','") & "'"  Close #n End Sub >縦に ~~ というようなコードが縦に並んでいるEXCELデータを >テキストへ'KNTT1','NINOH2','NIHOK3'という形でエクスポートさせたい とのことですので、 1)先ず、「縦に ~~ というようなコードが縦に並んでいる」というデータを配列に格納します。  myArr = Range("A1:A10") 2)「縦に並んでいる」セル範囲 を配列に格納すると、表で考えたときに、フィールド の集合ではなくて、レコード の集合のような形になりますので、一旦 [Transpose 関数] で横向きに書き換えます。  Application.WorksheetFunction.Transpose(myArr) 3)それぞれの コード の区切りを「','」というようになさりたいのですから、配列の内部文字列を結合する [Join 関数] で結合します。  Join(~~, "','") 4)最後に、結合された文字列の前後にも「'」を付け加えます。  "'" & ~~ & "'"

mustang2010
質問者

お礼

早速のご回答本当にありがとうございました。早速実行してみたところうまく行きました。説明もわかりやすく、リンクなどもいただき助かりました。