- 締切済み
マクロを使ってテキストを抽出したい?
エクセルのマクロを使ってテキストを抽出したい? ある1つのCSVデータがあります。エクセルで開いてみるとA列からU列までデータがびっちり入っています。 F列の各セルにはテキストを含むhtmlタグや%%NL%%やスペースなどあります。 質問なのですがF列をテキストだけに変換(抽出)したいです。 そのようなマクロを教えていただけないでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- n-jun
- ベストアンサー率33% (959/2873)
ANo.3です。 >>セルF3318のデータが、入力可能数を超えているようです。 >とありますが、このように入力可能数を超えているデータを探すにはどうやって探しているのでしょうか? 変数を追加宣言してカウントを行ない、デバッグになった時の変数の値を基に、 行数を求めました。
- n-jun
- ベストアンサー率33% (959/2873)
ANo.2です。 >実行時エラー'7' >メモリが不足しています。 セルF3318のデータが、入力可能数を超えているようです。 そう言った場合の方法については、ちょい不明です。 (Excel以前にデータを細工しなければならないのかも???)
お礼
n-jun様 回答ありがとうございます。 >セルF3318のデータが、入力可能数を超えているようです。 とありますが、このように入力可能数を超えているデータを探すにはどうやって探しているのでしょうか? 度々の質問すいません。
- n-jun
- ベストアンサー率33% (959/2873)
物は試しに。 Sub try() Dim RegExp As Object Dim st As String Dim r As Range Set RegExp = CreateObject("VBScript.Regexp") For Each r In Range("F2:F4") 'セルF2~F4 RegExp.Pattern = "<.*?>|\%|[NL]{1}" RegExp.Global = True st = Replace(r.Value, " ", "") st = Replace(st, " ", "") st = RegExp.Replace(st, "") r.Value = st Next Set RegExp = Nothing End Sub 違ったらごめんなさい。
お礼
回答ありがとうございます。 For Each r In Range("F2:F4") を試しに("F2:F10000") でマクロ実行するとエラーが発生します。 実行時エラー'7' メモリが不足しています。 と出ます。 何か対策はないでしょうか?
- hallo-2007
- ベストアンサー率41% (888/2115)
F列を具体的に提示してもらわないと回答も難しいと思います。 置き換えの機能はダメだったのでしょうか。 編集=>置き換え=>検索する文字 や%%NL%%など 置き換え後の文字空白のまま 全て置き換え もし<テキスト>%%NL%% などとテキスト部分がタグで区切られた内側? 検索する文字 *< で<含む前部分が削除 検索する文字 >* で>含む後部分が削除できます。 マクロが必要であれば、マクロの記録を実施してみてください。 他、過去スレですが、参考になりますでしょうか。 http://oshiete1.goo.ne.jp/qa4176128.html
補足
>F列を具体的に提示してもらわないと回答も難しいと思います。 そうですよね。 実はこのCSVなんですが http://www.infocart.jp/data/item_affi.csv ちょっと重いです。
補足
すいません。よく分からないのですが、具体的にどうするのでしょうか?よろしければ教えていただけないでしょうか?