• 締切済み

マクロを使ってテキストを抽出したい?

エクセルのマクロを使ってテキストを抽出したい? ある1つのCSVデータがあります。エクセルで開いてみるとA列からU列までデータがびっちり入っています。 F列の各セルにはテキストを含むhtmlタグや%%NL%%やスペースなどあります。 質問なのですがF列をテキストだけに変換(抽出)したいです。 そのようなマクロを教えていただけないでしょうか?

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

ANo.3です。 >>セルF3318のデータが、入力可能数を超えているようです。 >とありますが、このように入力可能数を超えているデータを探すにはどうやって探しているのでしょうか? 変数を追加宣言してカウントを行ない、デバッグになった時の変数の値を基に、 行数を求めました。

siraku
質問者

補足

すいません。よく分からないのですが、具体的にどうするのでしょうか?よろしければ教えていただけないでしょうか?

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

ANo.2です。 >実行時エラー'7' >メモリが不足しています。 セルF3318のデータが、入力可能数を超えているようです。 そう言った場合の方法については、ちょい不明です。 (Excel以前にデータを細工しなければならないのかも???)

siraku
質問者

お礼

n-jun様 回答ありがとうございます。 >セルF3318のデータが、入力可能数を超えているようです。 とありますが、このように入力可能数を超えているデータを探すにはどうやって探しているのでしょうか? 度々の質問すいません。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

物は試しに。 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, "&nbsp;", "") st = RegExp.Replace(st, "") r.Value = st Next Set RegExp = Nothing End Sub 違ったらごめんなさい。

siraku
質問者

お礼

回答ありがとうございます。 For Each r In Range("F2:F4") を試しに("F2:F10000") でマクロ実行するとエラーが発生します。 実行時エラー'7' メモリが不足しています。 と出ます。 何か対策はないでしょうか?

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

F列を具体的に提示してもらわないと回答も難しいと思います。 置き換えの機能はダメだったのでしょうか。 編集=>置き換え=>検索する文字 や%%NL%%など 置き換え後の文字空白のまま 全て置き換え もし<テキスト>%%NL%% などとテキスト部分がタグで区切られた内側? 検索する文字 *< で<含む前部分が削除 検索する文字 >* で>含む後部分が削除できます。 マクロが必要であれば、マクロの記録を実施してみてください。 他、過去スレですが、参考になりますでしょうか。 http://oshiete1.goo.ne.jp/qa4176128.html

siraku
質問者

補足

>F列を具体的に提示してもらわないと回答も難しいと思います。 そうですよね。 実はこのCSVなんですが http://www.infocart.jp/data/item_affi.csv ちょっと重いです。

関連するQ&A