- ベストアンサー
EXCELで縦に並んだデータをテキストファイルでカンマ、シングルクォテ
EXCELで縦に並んだデータをテキストファイルでカンマ、シングルクォテーションで区切り横一列に並べ変えたい。 縦に KNTTT1 NINOH2 NIHOK3 というようなコードが縦に並んでいるEXCELデータをテキストへ'KNTT1','NINOH2','NIHOK3'という形でエクスポートさせたいのです。 VBAは初心者ですが継続的に使用するのでVBAなどのプログラムで作成できたらと考えております。 よろしくお願いします。
- みんなの回答 (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)最後に、結合された文字列の前後にも「'」を付け加えます。 "'" & ~~ & "'"
お礼
早速のご回答本当にありがとうございました。早速実行してみたところうまく行きました。説明もわかりやすく、リンクなどもいただき助かりました。