- 締切済み
WORDでの置換による文字削除(具体的に)
WORDでの置換ですが、どうもうまくいきません。 具体的な文章を書き込みますので、よろしくお願いします。 【商品名】 ○○ 【一般名】 ○○○○ 【効能効果】 ▲▲▲▲▲▲▲▲ 1.1.2.3■■■■■■ 【商品名】 ◎◎◎◎◎ 【一般名】 ◎◎◎◎◎◎◎◎◎◎ 【効能効果】 □□□□□□□□□□□□ □□□□□□□□ 1.1.2.4 ◆◆◆◆◆◆ 【商品名】 ●●●●●●●● 【一般名】 ●●●● 【効能効果】 ◇◇◇◇◇◇◇◇ まる、さんかく、しかくの所には言葉が入っています。 で、【効能効果】の部分とそれ以降の言葉を消したいんです。 そして、それ以外の言葉は消さないようにしたいんです。 【効能効果】以降の文章は何行にもわたっていることもあります。 私自身は置換で行いたいと思っていますが、それ以外でも何か方法があれば構いません。 そういった方法があれば教えていただきたいと思います。 どうか、よろしくお願いします。
- みんなの回答 (10)
- 専門家の回答
みんなの回答
- enunokokoro
- ベストアンサー率74% (3543/4732)
No.3の回答者です。 たくさんの回答がついていますね。 どの回答でも基本さえ理解できれば応用することも、そのまま 活用することもできるかと思います。 今の状況は、どの回答内容であっても、そのままコピーしての 利用なので、どこが問題なのかを理解していないために解決が できていないのだと思います。 No.3で私が説明したように、検索条件としてワイルとカードの 意味が理解できていないことと、段落とは何かを理解してない ことが問題だと思います。 No.3の補足に書かれたことを中心にアドバイスしますね。 > 教えていただいた方法で試してみました。 > しかし、最初に教えていただいた方法ではうまくいかず、 どのようにうまくいかなかったのかを、具体的に書かないと 回答側としては問題点を把握できません。 他の回答者のアドバイスを一通りみていくと、質問者の文書 にあるものはネット上などの文章をコピーして、そのままを 置換で削除しようとしているのではないのでしょうか? No.9の回答者の方法でうまくいったのならば、この可能性が あるかと思います。自分でテキストで書き込んだものならば 今回のような複数のアドバイスを受けなくても解決できてた と思います。 このような場合、編集記号を表示して作業することをお勧め します。 編集記号を表示して改行位置に表示される記号が、段落記号 になっているのか、段落内改行の記号になっているのかで、 検索する条件が違ってしましますから。 http://www.relief.jp/itnote/archives/000803.php http://kokoro.kir.jp/word/changing-line.html http://kokoro.kir.jp/word/paragraph.html このまま単純に置換をしたのでは、Wordを使っての別作業を するときに問題が残ると思います。 インデントなどの段落書式や、段落スタイルの設定などにて 同じ段落内にあると同じ設定がされるためです。 もしもネット上のものをコピーしたのでしたら、テキストで 貼り付けるか、書式を維持したいのなら貼り付け後に以下の 置換で一度段落内改行を段落記号に直しておくことをお勧め します。 [置換]ダイアログで[あいまい検索]のチェックを外します。 [検索する文字列]: ^l ← 小文字のL [置換後の文字列]: ^p これで置換をします。 これによって、整形がしやすくなります。 これを設定しておけば、私が示したものや、他の回答にある 置換でも正しく置換できると思いますよ。 > 2番目に書かれていた方法では、【効能効果】が番号に 「番号」というスタイルがどのようなものかわかりませんが、 段落スタイルならば、【効能効果】以降の文字列に対しても 同じスタイルが適用されているはずです。そのスタイル名を 指定することで削除ができるようになります。 この場合も段落内改行で区切られていると、適用のスタイル 範囲が他の箇条書きや番号付きの項目にも設定されますので 注意が必要です。 ちなみに、マクロを提示しても他の回答者のマクロがダメで あることを考えると、検索条件と文書内の編集状態があって いないことも考えられることと、マクロをコピーしたものが 正しく貼り付けされているのかなど、エラーになることへの 対応ができるかどうかも、質問者さんのスキルとして問題が 解決できなければ、提示しても意味がないかもしれませんね。 私が用意してあるマクロも、段落単位で削除をするものです から、今回は提示しません。 一般機能としての検索が正しくできていれば、たぶん解決 できると思うからです。 解決できなくて締め切られた、前前回の質問で提示された 参考URL先を再度確認して勉強してみてね。
- MackyNo1
- ベストアンサー率53% (1521/2850)
例文を提示され、かつこれだけ皆さんから回答をもらっているのにうまくいかないということは、基本的に文章構造が違う可能性があります。 例示の文章を見ると段落番号が含まれる書式になっていますので可能性として考えられるのは、段落の最後の部分の改行マークが通常のカギ矢印ではなく、段落内改行の↓のマーカーになっていないでしょうか? この場合は、検索する文字列に以下のようなワイルドカード文字を指定する必要があります。 【効能効果】*^11 ところで、他の回答者に対する回答で「しかし、最初に教えていただいた方法ではうまくいかず、」とありますが、具体的にどのような結果になったのでしょうか? このような情報を的確に提供されれば、解決の早道になりますので、回答者からの回答(質問)に対しては、その結果を正確に説明するようにしましょう。
- keithin
- ベストアンサー率66% (5278/7941)
フム・・ 考えられることその1) 回答No.7で置換のダイアログの画像を付けておきましたが,「回答からコピー貼り付ける」のに必死で, ●ダイアログの設定が出来ていない ●文章の先頭にカーソルを入れるという指示を行っていない と,アナタが補足された状況になって出来ません。 考えられることその2) 文章が段落区切りで改行されていないと,アナタが補足された状況になって出来ません。 試しに 【商品名】 ○○ 【一般名】 ○○○○ 【効能効果】 ▲▲▲▲▲▲▲▲ 1.1.2.3■■■■■■ ↑この数字先頭で,つまり1.1.2.3の数字の前にカーソルを入れてEnterキーを打つという操作を明示的に行ってから,回答7の手順を行ってみます。 考えられることその3) アナタがご相談で示した 【効能効果】 という文言が,実際のワードに記載されている文言と違うと,ご質問の状況になって出来ません。 目で見て「間違ってるはずがない」と思う予断を捨てて,アナタがご質問に書いた【効能効果】をコピーしてワードの文章に貼り付け,再度回答7の手順を行ってみます。
- keithin
- ベストアンサー率66% (5278/7941)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 別案です。 何行にもわたっているのは【効能効果】の項目だけで 他の項目は1行で収まっているという前提です。 一旦文章すべてをコピーしてExcelを開きA1セルに貼り付けます。 この時A列のセル幅をかなり広めにしておきます、 そうしないとWordにコピー&ペーストしたとき、 行の中ほどに余計な改行マークが入ってしまいます。 画面左下の開いているSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行します。 (Alt+F8キー → マクロ → マクロ実行) Sub test() 'この行から Dim i As Long For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 If Cells(i, 1) Like "【効能効果】*" Then Cells(i, 1).Delete (xlUp) ElseIf Cells(i, 1) <> "" And Not Cells(i, 1) Like "【*" And _ Not Cells(i, 1) Like "[0-1]" & "*" Then Cells(i, 1).Delete (xlUp) End If Next i End Sub 'この行まで 最後にこのA列を範囲指定し、Wordにコピー&ペーストします。 こんな方法はどうでしょうか?m(_ _)m
補足
回答をありがとうございます。 マクロをコピペして試してみました。 その結果、一番最初の行で、コンパイルエラー SubまたはFunctionが定義されていませんと出ました。
- neKo_deux
- ベストアンサー率44% (5541/12319)
> 必ず1.1というわけではありません。 > 2.1になったり、3.1になったり、3.2になったりと、規則正しいわけではありません。 規則性が無いと、ちょっと厳しいかも。 【効能効果】以降で、行頭に(数字)がある箇所までとし、効能効果以降の文章では行頭に数字が出る事は無いだとか。 (まぁ、それでもそういう例外箇所が数箇所とかなら、手動で修正すれば良いような。) -- あるいは、 (削除したい対象) (数字) (空行) 【商品名】 と、商品名の前に必ず空行があって、その前に数字があるとかなら、単純な置換では無理でも、マクロ使えば可能かも。 適当に記録したマクロだと、 Sub Macro_Del効能効果() ' 文書の先頭に Selection.HomeKey Unit:=wdStory ' 【効能効果】を検索 With Selection.Find .Text = "【効能効果】" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute ' カーソルを先頭(左端)に。 Selection.HomeKey Unit:=wdLine ' 拡張選択モード開始 Selection.Extend ' 【商品名】を検索 Selection.Find.ClearFormatting With Selection.Find .Text = "商品名" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute ' カーソルを先頭(左端)に。 Selection.HomeKey Unit:=wdLine ' カーソルを2行上に Selection.MoveUp Unit:=wdLine, Count:=2 ' 改行を挿入 Selection.TypeParagraph End Sub で1回削除分とか。
補足
回答をありがとうございました。 早速、マクロをコピペして試してみました。 その結果、実行時エラー 5623 [置換後の文字列]に、指定できない範囲の番号が含まれています。と出ました。 Selection.Find.Executeが原因のようです。 End Withの後の二か所とも同じエラーが出たようです。 (削除をしてマクロを実行した際もエラーが出たようです)
- keithin
- ベストアンサー率66% (5278/7941)
置換でワイルドカードを使用して 効果】(*^13^13)*【効能 を 効果】\1【効能 に全て置換してみるなど。 一番最初に出てくる効能効果より前の部分が残るので,そこだけ手で削除します。
補足
回答をありがとうございます。 教えていただいた方法で試してみました。 しかし、置換が全くされませんでした。 何度か試してみましたがうまくいきませんでした。 そのままコピペして試してみました。 どうしてうまくいかなかったのかはよく分かりません。
- enunokokoro
- ベストアンサー率74% (3543/4732)
なぜ前の質問のNo.2の私の回答に補足しないのですか? そこに具体例を書けば済むことなのに。 http://okwave.jp/qa/q7298335.html 今回の具体例の場合でも基本的には同じだと思います。 [検索する文字列]: 【効能効果】*^13 これで[検索]してくれませんか? 【効能効果】と、それ以降の文章を示す「*」と、段落 の最後にある段落記号を示す「^13」を組み込めば、 段落ごと検索対象になり、削除も簡単になると思う。 どうしても置換ができないのなら、指定の部分である 【効能効果】がある段落へ、特定の段落スタイル名を 置換で適用しておき、そのスタイルをもとに再度置換 をしてスタイル名のある段落ごと削除する方法なども 使えると思います。この場合は、[ワイルドカード]を 使わなくても[あいまい検索]のチェックを外しておく だけで検索できますので簡単です。 [検索する文字列]: 【効能効果】 [置換後の文字列]: [書式]ボタンで[スタイル]を選択して、使っていない 段落スタイルを指定しておく。 これで置換することで特定のスタイル名が【効能効果】 がある段落に設定されるので、再度[置換]機能を使って スタイル名を検索する対象にして置換後は何も入れない ことで削除できます。 複数段落にまたぐ文書ごと削除するとなると無理です。 この場合は、複雑になるので私には無理ですね。 基本的なことは前の質問と同じことなので、上記方法で 対応できないのなら、その場合は正規表現を駆使すれば テキストエディタやマクロなどで対応できるかも。
補足
回答をありがとうございます。 そして、補足に書き込むことをせず、申し訳ありませんでした。 教えていただいた方法で試してみました。 しかし、最初に教えていただいた方法ではうまくいかず、2番目に書かれていた方法では、【効能効果】が番号に切り替わりましたが、その後うまくいきませんでした。 私のやり方が駄目なのかもしれませんが・・・
- neKo_deux
- ベストアンサー率44% (5541/12319)
> 【効能効果】の部分とそれ以降の言葉を消したいんです。 「それ以降」の範囲の終わりの次の文字はどうなってるんでしょう。 質問文のように、必ず「1.1.」って事なら、 【効能効果】(任意の文字列)1.1. ↓ (改行)1.1. に置換とか。 Word2010の置換での指定だと、置換のオプションで、 検索する文字列:【効能効果】*1.1 置換後の文字列:^l1.1 オプション:ワイルドカードを使用する 他のオプションは全てoff とか。
補足
回答していただきありがとうございます。 必ず1.1というわけではありません。 2.1になったり、3.1になったり、3.2になったりと、規則正しいわけではありません。
- Hypnomatic
- ベストアンサー率53% (56/104)
置換じゃ無理。マウスでドラッグしてDeleteで削除してください。 もしやる気があるのであれば、マクロを勉強してください。
補足
回答ありがとうございました。 置換では無理ですか。 マクロならできるのでしょうか。 ちなみに、マクロならどのようにして行えばいいのでしょうか…
補足
回答をありがとうございます。 早速、コピペして試してみました。 しかし、 文章の検索が終了しました。検索項目が見つかりませんでした。 とでて、置換されませんでした。 皆さんにいろいろとアドバイスをもらって大変うれしいです。 しかし、私のやり方がまずいせいか、説明不足のせいか、アドバイスを生かすことができず、心苦しい限りです。