web-dev-qa-db-ja.com

Microsoft Word2007での段落のマージと再フォーマット

Microsoft Word 2007でのコピー/貼り付けの事故の後、次のようなテキストになりました。

This line   breaks up here

continues here, and    so on

here, when    it should all be

in a    single line without

all the random    whitespace.

おそらく元のソースにハードコードされた改行が原因で、各行の間に段落区切り文字と余分な空白があることを確認しました。

  1. Microsoft Wordの段落をマージする(できれば簡単な)方法はありますか?

  2. 余分な空白が削除されるように段落を再フォーマットする方法はありますか?フラッシュスタイルを変更できますが、空白は残ります。

私は(明らかに?)Wordの経験がなく、TeXの人間ですが、Googleを検索してメニューを数時間クロールしていて、まだ解決策を見つけていません...

4
thkala

余分なスペースを取り除くには、検索/置換を実行し、検索ボックスに2つのスペースを入力し、置換ボックスに1つのスペースを入力します。次に、何も見つからなくなるまで、それを何度も繰り返します。ただし、2つ以上のスペースを意図的にグループ化した場合は、それらも1つのスペースに変換されます。ただし、通常、等幅フォントを使用している場合を除き、文の間に2つのスペースは必要ありません( この質問 を参照)。

補足:Wordにコピーアンドペーストするとき(たとえば、WebページやPDFドキュメントから)、いくつかを回避できることがわかりましたソースからのフォーマット情報なしでプレーンテキストをコピーして貼り付けていることを確認することで、フォーマットの奇妙さを軽減します。以前は、最初に空白のメモ帳ドキュメントに貼り付けてから、メモ帳からWordに再コピーすることでこれを行っていました。 Word 2010では、右クリックして[貼り付けオプション]の下の[テキストのみを保持]オプションを使用すると、その手順をスキップできます。ただし、コピー元のソースに実際の余分な文字があるように見えるため、これはあなたの場合には役に立たないかもしれません。

編集:

あなたがマクロを使う可能性について言及し、それを書いたことに気づきました。 VBAコードは次のとおりです。

Sub FixParagraph()
'
' FixParagraph Macro
'
'
    Dim selectedText As String
    Dim textLength As Integer

    selectedText = Selection.Text

    ' If no text is selected, this prevents this subroutine from typing another
    ' copy of the character following the cursor into the document
    If Len(selectedText) <= 1 Then
        Exit Sub
    End If

    ' Replace all carriage returns and line feeds in the selected text with spaces
    selectedText = Replace(selectedText, vbCr, " ")
    selectedText = Replace(selectedText, vbLf, " ")

    ' Get rid of repeated spaces
    Do
        textLength = Len(selectedText)
        selectedText = Replace(selectedText, "  ", " ")
    Loop While textLength <> Len(selectedText)

    ' Replace the selected text in the document with the modified text
    Selection.TypeText (selectedText)

End Sub

このマクロは、選択したテキストのすべての改行と改行をスペースに置き換えてから、繰り返されるスペースを取り除きます。したがって、修正するテキストを強調表示してから、マクロを実行するだけです。 Word 2007を持っていないので、これをWord 2010でテストしただけですが、2007年にも機能するはずです。

Word 2007でマクロコードをドキュメントに取り込むには、まず このページ の[開発者タブを表示する]の手順に従います。次に、同じページの「最初からマクロを作成する」の手順に従います(上記のマクロにはFixParagraphという名前を使用しました)。コードエディタにアクセスしたら、上記のコードの本文をコピーするだけです。同じWebページでマクロを実行する方法についての説明もあります。

3
Brandon
  1. Ctrl + Hを押して開きます検索と置換
  2. 置換タブをクリックします
  3. Find whatフィールドをクリックしてから、Specialをクリックします。
  4. 選択段落記号([検索]フィールドに^ pが表示されます)
  5. Replace withフィールドには、何も入力する必要はありません。

問題は、これがすべての段落を置き換えることです...

あなたはそれらの特殊文字で遊ぶことができます。幸運を!

2
Nicu Zecheru

主な答え:

Nicu Zecheruの回答に触発されました)

  1. 段落区切りを削除するテキストを選択します
  2. 押す Ctrl-H
  3. 検索:^p(段落記号)
  4. 適切なものと交換してください(例:スペースのみ)
  5. すべて置換をクリックします。選択時に行った置換の数と、選択を超えて続行するかどうかが表示されます。
  6. クリックいいえ

これで、選択範囲内のすべての段落記号が置き換えられました。

ボーナス:印刷できない記号を表示する方法がわからない場合は、次の手順に従ってください。

印刷できない記号を表示する必要があります-ツールバーのこのアイコンをクリックしてください: enter image description here

これで、段落記号、スペースなどが表示されます。

enter image description here

テキストを修正するために、必要に応じて段落記号(画像で黄色で強調表示されている)を削除します。次に、段落のプロパティを使用して、必要に応じて行間の間隔をフォーマットできます。

P.S.スクリーンショットはWord2010のものですが、記号と機能はどのWordのバージョンでも同じです。

1