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