• 締切済み

指定文字列から指定文字列までの抽出

EXCEL、Wordでも何でもいいのですが、 指定文字列から指定文字列までを抽出したいです。 そのほかを削除するという考えでも良いです。 ビジネス文書ではないですが、 例としてビジネス文書を使います。 例) ☆平成○年○月○日 ☆ ☆○○食品☆ 株式会社 営業部課長 ○岡 ○冶 様 ☆株式会社 □□企画☆ 取締役 □川 □子 本社移転のお知らせ  謹啓 向春の候 貴社におかれましては益々ご清栄のこととお慶び申し上げます。平素より格別のご愛顧を賜り、誠に有難うございます。 ☆ さて、この度弊社では業務拡張のため、平成◯年◯月◯日より下記住所に移転することとなりました。☆  これを機に、一層のサービス向上に努めるべく、社員一同気持ちをあらたにしております。  今後ともご愛顧のほど宜しくお願い申し上げます。 謹白 記   旧)  〒△△△ 東京都△△区△△町1-2-3         電話 △△△ FAX △△△   ☆新)  〒△△△ 東京都△△区△△町4-5-6         電話 △△△ FAX △△△☆   平成○年○月○日より、新社屋にて営業を開始いたします。 以上 のようなとき、 ☆と☆の間を抜き出したいのです。 上の文書だと、 平成○年○月○日 ○○食品 株式会社 □□企画 さて、この度弊社では業務拡張のため、平成◯年◯月◯日より下記住所に移転することとなりました。 新)  〒△△△ 東京都△△区△△町4-5-6         電話 △△△ FAX △△△ という形で抜き出せます。 マクロで自動登録をし、 1行ずつ削除していく方法も考えたのですが 必要な部分まで消してしまうことが多く、うまくいきませんでした。 逆の考えで、 ☆と☆の間以外を削除し、 空白のセルを消すというのでも構いません。 分かりにくい説明で申し訳ありませんが、 宜しくお願いいたします。

みんなの回答

回答No.2

こちら↓はWordの置換作業を3回分して記録したものです。 Sub Macro1() ' ' 指定文字列で挟まれた範囲を蛍光ペンに   Selection.Find.ClearFormatting   Selection.Find.Replacement.ClearFormatting   Selection.Find.Replacement.Highlight = True   With Selection.Find     .Text = "☆(*)☆"     .Replacement.Text = ""     .Forward = True     .Wrap = wdFindContinue     .Format = True     .MatchCase = False     .MatchWholeWord = False     .MatchByte = False     .CorrectHangulEndings = False     .MatchAllWordForms = False     .MatchSoundsLike = False     .MatchFuzzy = False     .MatchWildcards = True   End With   Selection.Find.Execute Replace:=wdReplaceAll ' 蛍光ペン以外を削除     Selection.Find.ClearFormatting   Selection.Find.Highlight = False   Selection.Find.Replacement.ClearFormatting   With Selection.Find     .Text = "*"     .Replacement.Text = ""     .Forward = True     .Wrap = wdFindContinue     .Format = True     .MatchCase = False     .MatchWholeWord = False     .MatchByte = False     .CorrectHangulEndings = False     .MatchAllWordForms = False     .MatchSoundsLike = False     .MatchFuzzy = False     .MatchWildcards = True   End With   Selection.Find.Execute Replace:=wdReplaceAll ' 指定文字列のみ削除して蛍光ペンを解除     Selection.Find.ClearFormatting   Selection.Find.Highlight = True   Selection.Find.Replacement.ClearFormatting   Selection.Find.Replacement.Highlight = False   With Selection.Find     .Text = "☆(*)☆"     .Replacement.Text = "\1^p"     .Forward = True     .Wrap = wdFindContinue     .Format = True     .MatchCase = False     .MatchWholeWord = False     .MatchByte = False     .CorrectHangulEndings = False     .MatchAllWordForms = False     .MatchSoundsLike = False     .MatchFuzzy = False     .MatchWildcards = True   End With   Selection.Find.Execute Replace:=wdReplaceAll End Sub 記録マクロなので単純なものですが、使えると思います。 希望しているものと違うかもしれませんが、参考までに。 ちなみに指定文字列で挟まずに、蛍光ペンで塗りつぶしし、 それを新規文書に挿入する方法もあります。 この方が応用もできると思いいますよ。 http://ameblo.jp/gidgeerock/entry-11076984085.html http://ameblo.jp/gidgeerock/entry-11086639176.html

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

>EXCEL、Wordでも何でもいいのですが、 >指定文字列から指定文字列までを抽出したいです 指定文字が特定されないと何とも 1文書に何回も出てくる文字ですか? あるいは1回しか出てこない文字なのですか?

catpretty
質問者

補足

指定文字列は何回も出てきます。 <>のように変更することもできるのですが、 とりあえず、 指定文字列から指定文字列までを抜き出したいのです。 <から>までとか、☆から☆までとかです。

関連するQ&A

専門家に質問してみよう