• 締切済み

ワード 表内の改行 置換 マクロ

ワードの表内に、0改行、となっているところの0だけ削除したいのですがワイルドカードで表内は検索されないようです。マクロでもいいので、やり方をお教えてください。

みんなの回答

回答No.1

こんにちは。 Wordは、それほど詳しくないのですが、 スマートなやり方は無さそうなので、 ベタに総当たりする対話型マクロを簡単に書いてみました。 ダイアログを2回表示するので、 "0"+改行 を 改行だけに換えたい場合は、  先のダイアログに、"0" を指定して[ok]  後のダイアログは、何も指定せず[ok]または[キャンセル] ab0↓ というセルがあれば。 ab↓ に、 100↓ 200↓ というセルがあれば。 10↓ 20↓ に、 置換するマクロです。 置換するのは、編集中のドキュメントすべてにあるテーブルだけです。 表の外に対しては何もしません。 書式に対しては何もしません(変わりません)。 因みに、 もし他の方法を探す場合の為の参考情報ですが、 セル内改行は、通常の ^13 セル終端は、^13^7 の2文字です。 Wordの置換機能では(ワイルドカードを使っても) 出来なさそう、と感じていますが、確信はありません。 ' ' // Sub ReplaceTablesCharJustBeforeCr() Dim t As Table, c As Cell Dim strFind As String, strReplace As String, sTmp As String Dim ary() As String   strFind = InputBox( _     "検索する(置換対象)文字列を入力" & vbLf & _     " テーブル内改行(または終端)の直前に見つかれば置換" & vbLf & _     " 半角/全角,小文字/大文字を区別します")   If strFind = "" Then Exit Sub   strReplace = InputBox("置換後の文字列を指定")   Application.ScreenUpdating = False   For Each t In ActiveDocument.Tables ' 編集中のドキュメント内にあるテーブルすべてを総当たり     For Each c In t.Range.Cells ' 各テーブル内のセルすべてを総当たり       With c.Range         sTmp = .Text ' セル内の文字列を取得         If InStr(sTmp, strFind & vbCr) Then ' 置換対象文字列+改行が、セル内に見つかれば、           sTmp = Replace(sTmp, strFind & vbCr, strReplace & vbCr) ' 置換           sTmp = Left$(sTmp, Len(sTmp) - 2) ' 終端にある^13^17の2文字をを除く           .Delete ' セル内の文字列を一旦消去           .InsertAfter sTmp ' 置換後の文字列をセルに挿入         End If       End With     Next   Next   Application.ScreenUpdating = True End Sub ' ' //

honeybeans
質問者

お礼

できました!!! すごく助かります。ありがとうございました。

関連するQ&A

  • メモ帳またはwordで改行を置換したい。

    お尋ねします。 メモ帳、またはwordで「,」+「改行」となっている部分だけ、改行を削除したいのですが、何がいい方法はありませんか? 「置換」を使えばいいかとは思うのですが、置換の「検索する文字列」に「改行」を打ち込む方法がわかりません。 どうかよろしくお願いいたします。

  • word2010のマクロについて

    word2010で、行頭にある改行コードを削除するマクロを作りたいのですが、wordのマクロは作ったこともなく、まったくの素人です。 ネット上では、置換機能で「^p^p」⇒「^p」でOKとはありますが、表が混在するワード文書では、表の次にある空行を削除することはできません。 Perlだと(Perlは使えます)、例えば、$line = s/^¥n//g; でいけますね。ワードのマクロはネットでいろいろ調べましたが、基本知識がないためよく分かりません。 どなたかご教授のほどよろしくお願いいたします。

  • word置換で改行は置換できますか?

    word置換で改行は置換できますか?  一斉にEnterでの改行されている部分を置換する方法はないでしょうか?  あればよろしくおねがいします。

  • ワードの改行マークを一斉に消すマクロがあったはず・・・

    お世話になります。 pdf ファイルからワードにコピー&ペーストした段落の改行を、文書全体に渡って(選択範囲のみ)削除したいのですが、ワードの置換え機能ではなく、同じことをやってくれるマクロがあったと記憶しているのですが、ご存知ないでしょうか? 文書全体の改行マークをいっぺんに消してしまうのではなく、選択した範囲だけの改行マークをスペースに置き換えたいのです。以前、使ったことがあったのですが、どこかに行ってしまいました。 ご存知のかた、どうぞよろしくお願いします。

  • 「検索と置換」機能(MSオフィス・ワード2007)を使って改行マークを

    「検索と置換」機能(MSオフィス・ワード2007)を使って改行マークを削除することは可能でしょうか。文中のスペースを削除するには検索欄にスペースを入れ、置換欄を空白にすれば可能ですが、同じような要領で不要な改行マークを削除できないでしょうか。

  • ワードのマクロで、特定の文字の後に改行を入れる

    ワードのマクロで、特定の文字の後に改行を入れるにはどうしたらいいでしょうか。 例えば、文章の中で、「りんご」という言葉があった場合に、りんごの直後に改行を入れます。 場合によっては、改行を2行入れる可能性もあります。 よろしくお願いいたします。

  • ワードのマクロについて

    お世話になります。 エクセルのマクロについてはここでよくアドバイスをもらっていますが、今回ワードでの処理について教えてください。 1つのフォルダにワード文書がたくさん入っています。 各ワード文書に対し以下の操作を自動化させたい。 1.すべてを選択(ctrl+A) 2.置換で「改行」をすべて削除   あいまい検索のチェックをはずした上で 検索する文字列 ^p  置換後の文字列は「空白」   すべて置換 3.置換で「スペース」をすべて削除   あいまい検索のチェックをはずした上で 検索する文字列 ^w  置換後の文字列は「空白」   すべて置換     4.すべてを選択 5.メニュー→書式→文字種の変換→全角にチェック→OK    ですべての文字を全角にする まとめると「すべての改行、スペースを削除し、全文字を全角に統一する」 この作業をフォルダ内の全ワード文書に対して一括で処理できないでしょうか? ちなみにワード文書は元々メモ帳(*.txt)で作成されていたものをリネームソフトで拡張子を*.docに変換したものです。そのためファイルを閉じるときに「書式なし形式で使用できない機能が含まれています」と聞いてきますが「はい」でOKです。 アドバイスおねがいします。

  • ワード表内での図形

    ワードの表内で文字を図形の円で囲うもうとすると、文字が逃げてしまいます。逃げない場合もあるのですが、どうしてでしょうか。 教えてください。

  • ワード:特定の言葉の5文字前で改行するマクロ

    ワードでマクロをしようと思うのですが、ワードのマクロはしたことがなく困っています。 具体的には、ワードの文章で、例えば、「AAA」という言葉が出たときに、その半角5文字前で改行をすることで見やすくしたいのですが、どのようなコードになるのでしょうか。 よろしくお願い致します。

  • ワードの↓の改行は置換で消せないでしょうか?

    いつもお世話になります。 ウェブサイトからテキストを拾って、ワードにコピー&ペーストしたところ、一般の改行とは異なり、↓マークで改行されており、置換の特殊文字の段落記号では置換できませんでした。 相当大量のテキストなので一々手作業でやるのは不効率です。 何かうまいやり方をご存じないでしょうか?

専門家に質問してみよう