- ベストアンサー
EXCELのテキスト変換
EXCEL97ですが、以下のようにデータをテキスト変換する方法を教えてください。 データの中で1項目だけを取り出してテキストデータに変換したいのです。 例) 安部太郎 aaa@abc.co.jp 999-222-2222 佐藤太郎 bbb@abc.co.jp 999-333-3333 というデータのURLだけを抽出して aaa@abc.co.jp , bbb@abc.co.jp とデータ毎に改行して、しかも間に,の行を入れてテキストとして出力したいのです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
A2から下方向にデータが並んでいるときの方法です。必要なURLの前後は『半角スペースとしています』 標準モジュールに貼り付けます。ご参考に。 Public Sub writeURL() Dim outFilename As String '出力ファイル名 Dim rw As Long '行カウンタ Dim dt As String 'データ Dim pot1 As Integer '区切り位置1 Dim pot2 As Integer '区切り位置2 outFilename = "C:\My Documents\・・・・" & "\myTestFile.txt" Open outFilename For Output As #1 For rw = 2 To Range("A65536").End(xlUp).Row dt = Range("A" & rw) pot1 = InStr(dt, " ") pot2 = InStr(pot1 + 1, dt, " ") If rw <> 2 Then Print #1, "," Print #1, Mid(dt, pot1 + 1, pot2 - pot1 - 1) Next Close End Sub
その他の回答 (3)
- k_eba
- ベストアンサー率39% (813/2055)
エクセルだけでは実現可能では無いのでは? したがって先ほどのCSVを変換してはいかがですか ozconv 簡単・テキストコンバータ HTMLの表からCSVに変換したり、引用符つけたり、コード変換したり、色々加工可能 と色々書いてありました 別にHTMLにこだわらず一回試されたらいかがですか?
お礼
アドバイスありがとうございました。 nishi6さんに教えて頂いたモジュールでできました。 おそらく私の質問内容があまり要領えず、お手数をおかけ したと思います。 すいません。ありがとうございます。
- k_eba
- ベストアンサー率39% (813/2055)
参考回答として,のテキストを入れない方法で回答します 例題だとB列がアドレスのようですので B列をコピーして 新しいエクセルに貼り付け 登録する時にCSVで登録すればOKです。 なぜ,行が必要か不明な為、参考回答です。 何かあれば補足して下さい。
お礼
ありがとうございます。 EXCELのデータをWindowsでないシステム に渡すために、データの区切りの識別としてカンマ行 が必要なようです。
- Methyln
- ベストアンサー率29% (242/823)
>データの中で1項目だけを取り出してテキストデータに変換したいのです。 >例) 安部太郎 aaa@abc.co.jp 999-222-2222 これって1つのセルに全部書かれているということではないですよね? で、あれば、URLのセルの行だけ選択して、他のシートにコピーして コピーされた行の次の行にカンマをコピーして、CSV形式でファイル出力 すれば、希望通りになると思います。 もし、同一セルに書いてあるなら、一度CSV形式で出力して、 そのファイルをカンマとスペースで区切るようにしてあげれば、別々の セルに分かれます。
お礼
ありがとうございます。 データは複数のセルに書かれています。 データ件数が多く、データの間の行にカンマを入れなけ ればならない(挿入)ために簡単にできないかと思って います。 できれば変換時にカンマの行を自動挿入できればと思っ ています。
お礼
お礼が遅くなりました。 教えて頂いたモジュールをちょっと変えて実行したところ 上手くいきました。 ありがとうございました。