家・車以外で、人生で一番奮発した買い物

EXCEL、Wordでも何でもいいのですが、
指定文字列から指定文字列までを抽出したいです。
そのほかを削除するという考えでも良いです。


ビジネス文書ではないですが、
例としてビジネス文書を使います。

例)
☆平成○年○月○日 ☆
☆○○食品☆ 株式会社
営業部課長 ○岡 ○冶 様

☆株式会社 □□企画☆
取締役 □川 □子


本社移転のお知らせ

 謹啓 向春の候 貴社におかれましては益々ご清栄のこととお慶び申し上げます。平素より格別のご愛顧を賜り、誠に有難うございます。
☆ さて、この度弊社では業務拡張のため、平成◯年◯月◯日より下記住所に移転することとなりました。☆
 これを機に、一層のサービス向上に努めるべく、社員一同気持ちをあらたにしております。
 今後ともご愛顧のほど宜しくお願い申し上げます。
謹白



  旧)  〒△△△ 東京都△△区△△町1-2-3
        電話 △△△ FAX △△△

  ☆新)  〒△△△ 東京都△△区△△町4-5-6
        電話 △△△ FAX △△△☆

  平成○年○月○日より、新社屋にて営業を開始いたします。


以上



のようなとき、
☆と☆の間を抜き出したいのです。

上の文書だと、

平成○年○月○日
○○食品
株式会社 □□企画
さて、この度弊社では業務拡張のため、平成◯年◯月◯日より下記住所に移転することとなりました。
新)  〒△△△ 東京都△△区△△町4-5-6
        電話 △△△ FAX △△△



という形で抜き出せます。
マクロで自動登録をし、
1行ずつ削除していく方法も考えたのですが
必要な部分まで消してしまうことが多く、うまくいきませんでした。

逆の考えで、
☆と☆の間以外を削除し、
空白のセルを消すというのでも構いません。

分かりにくい説明で申し訳ありませんが、
宜しくお願いいたします。

A 回答 (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
    • good
    • 0

>EXCEL、Wordでも何でもいいのですが、


>指定文字列から指定文字列までを抽出したいです

指定文字が特定されないと何とも
1文書に何回も出てくる文字ですか?
あるいは1回しか出てこない文字なのですか?

この回答への補足

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

補足日時:2013/07/30 13:57
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!