• 締切済み

word2010のマクロについて

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

みんなの回答

回答No.2

#1です。追加レスです。 もしかしたら、こういうことかな?という参考マクロです。 お望みと違うようでしたら、すみません。 ' ' /// Sub Re8986783w() Dim nPosS As Long Dim nPosE As Long Dim i As Long   With ActiveDocument ' ' 連続改行を ひとつの改行 に置換     .Range.Find.Execute _       MatchWildcards:=True, _       FindText:="^13{2,}", _       ReplaceWith:="^p", _       Replace:=wdReplaceAll ' ' ドキュメント先頭の改行(があればすべて) 削除     Do While .Range.Characters(1) = vbCr       .Range.Characters(1).Delete     Loop ' ' 各テーブルを下方にあるものから順にループして、 ' ' テーブルの直後、直前に 改行があれば (下方から順に)削除     For i = .Tables.Count To 1 Step -1       With .Tables(i).Range         nPosS = .Start         nPosE = .End       End With     ' ' テーブルの直後       With .Range.Characters(nPosE + 1)         If .Text = vbCr Then .Delete       End With     ' ' テーブルの直前       With .Range.Characters(nPosS - 1)         If .Text = vbCr Then .Delete       End With     Next i   End With End Sub ' ' ///

kimu_Masa
質問者

お礼

ありがとうございます。 まだ試していませんが、トライしてみます。 コード内容は、私にはチンプンカンプンですが(汗)…

回答No.1

こんにちは。 連続した改行をひとつに纏めるなら、   ActiveDocument.Range.Find.Execute _     MatchWildcards:=True, _     FindText:="^13{2,}", _     ReplaceWith:="^p", _     Replace:=wdReplaceAll 等のように(ここで省略している引数については必要に合わせて適宜)。 > 表の次にある空行を削除することはできません。 これは、Word の仕様ですので、 少なくともテキスト処理マクロでは、どうにも出来ません。 表の設定を変える、ということになるかと思います。  『表の後ろの改行・段落記号をなくしたい』 http://www.relief.jp/itnote/archives/002784.php  『ワード 罫線の後に残る改行マークを消すには』(No.3) http://okwave.jp/qa/q8307803.html 等を参考に、ご要望に適う方法を見つけて、 とりあえずマクロの記録等からコードを探ってみてください。

kimu_Masa
質問者

お礼

ご丁寧な回答ありがとうございます。 いろいろと試させていただきたいと思います。 ありがとうございました。

関連するQ&A

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

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

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

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

  • Wordの置換がマクロ記録できない

    Word文書を作成しています。 複数の単語の、色を変えたいと思い。 置換をマクロで記録をしてみたのですが、実行してもなにも起こらないのです。 これはなぜなのでしょうか? ちなみに置換しているのは色のみで、文字はそのままです。 また他にもマクロのような一括でできる機能などはないのでしょうか? よろしくおねがいいたします。

  • Wordで複数の単語を一括置換するマクロはありませんか?

    Wordで複数の単語を一括置換するマクロはありませんか? 産業翻訳をしています。 現在は、自作の辞書を使ってテキスト文書内の登録単語を一括置換しています。 水野麻子さんのブログhttp://ameblo.jp/saglasie/entry-10519224366.htmlによると、 この作業をWordでできて、さらに置換部分をハイライト表示したり、置換した単語のリストが自動的に作成されるマクロがあるようなのですが、ネット上で検索しても見つかりません。 無料公開はされていないのでしょうか? こうした一括置換機能はどんなソフトにも標準装備されている、といった記述もネット上で見つかるのですが、どこにあるのかわかりません。 もし無料公開がないのでしたら、このマクロの電子版や本の購入も考えています。 このマクロの入手経路をご存知の方おられませんか?

  • EXCEL VBAにて、WORDへ置換

    EXCEL VBAにて、WORD文書への文字列置換を行っております。 文字列の置換自体はできています。 が、 置換文字列に「改行」(vbCRやvbLF)をいれて置換すると、 word側での表示が□になってしまいます。 vbCrだけでもvbLFだけでも、vbCRLFでも□と表示されてしまいました。 chr(13) & chr(10)でも□になりました。 EXCEL VBA にて WORDへ文字列置換する場合に送る、改行コード (たぶん「^p」と予測をつけているのですが)を chr関数等での 表示方法を教えてください。 EXCEL2003 WORD2003 よろしくお願いします。

  • さらに>2バイト文字を検出するマクロってありませんか?

    先日No.2057187回答していただいたものです。 マクロを教えていただいたのですが、 word文書で、罫線(表)内の改行文字のすべてに引っかかります。 罫線でない、本文の方の改行文字には引っかからないのですが・・・。 あと、ページ数25枚の文書で「オーバーフロー」というエラーが出て機能しませんでした・・・。 どうしたらいいでしょう?

  • 正規表現で改行が3個続いてたら、それを削除する書き

    検索とか置換えで、正規表現で、改行が3回続いていたら、それを削除する書き方ってあるでしょうか? 試して見てるのですが、改行が全部消えてしまい、うまく思い通りにいきません。 検索:^\n 置換: とかだと、改行が全部なくなってしまいます。 ^\n\n\n$ だと、ヒットしません。 改行が続いていて、それを3行だけ取り除くなんていうのは、できないもんでしょうか。 文章の中にあります。 行頭に半角空白,改行と続くのもありますが、それはヒットしないように。      

  • ワードで全てのキーにマクロ割付させるには

    ワード(2000)にてアンダーラインを付ける機能をCONT+Uキーに割付けマクロ記録をすると動作しますが、CONT+Pなどワードが使用しているショートカットのキーでは、マクロ記録できても動作しません。 ●ワードが使用しているショートカットのキーの動作はしなくてもかまわないので(CONT+CやCONT+Vは除いて)記録したマクロを動作させるには、どうしたらよいでしょうか? ●マクロ記録をした文書を開くも非アクティブにし、別の文書をアクティブにして、別の文書もマクロを動作させるにはどうしたらよいでしょうか? <参考> ・アクティブの文書にてCONT+Pなどマクロ記録でき、動作したこともあったが、再度行ったら動作しなかった。 ・動作したときは、アクティブの別の文書では記録したマクロが動作しなかった。CONT+Uキーのワードが使用していない記録したマクロは、アクティブの別の文書でも動作します。 よろしくお願いします。

  • 一太郎のマクロの書き方を教えてください

    一太郎のマクロを作ろうとしています(マクロの記録を手直しするぐらいしかできないズブ素人です)。いま作ろうとしているのは作ったテキストデータをゲラ刷りして校正する時にどこに改行マークが入っているか、改頁マークが入っているかをチェックできるように改行のところは△を挿入し、改頁のところには◎を挿入しようというものです。 改行を置換する作業をマクロの記録で分析したところ、改行は正規表現の\nで表しているので、改頁は正規表現の\fでいいのだろうと思って次のようなソースで作ってみたのですが、改行の方はうまく作動するのですが、改頁の方はエラーが起きてしまいます。どのように書いたら改頁マークを検索文字列としてとらえることができるのか教えてもらえると助かります。 ----- 文字全置換(.検索文字列="\n",.置換文字列="△"&"\n",.検索方向=3,.あいまい検索=0,.確認=0) 文字全置換(.検索文字列="\f",.置換文字列="◎"&"\f",.検索方向=3,.あいまい検索=0,.確認=0) -----

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

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

専門家に質問してみよう