Help us understand the problem. What is going on with this article?

Word for Mac の text wrapping break

概要

年度末にあたり、普段は縁がない Microsoft Word for Mac で報告書や業務マニュアルを作ってみて、いろいろと苦労しました。

その一環として text wrapping break について深堀りしてしまったので、その正体と付き合いかたについて説明したいと思います。

Text wrapping break

Microsoft Word の text wrapping break というものをご存知でしょうか。これは表や図に対するテキストの回り込みを終わらせて、新しい行を始めたいときに使う改行のことです。 CSS の clear: both; と同じ目的で使うもの、というとわかりやすいかもしれません。

表を使ったレイアウトに頼らないまともな業務マニュアルを作ろうとすると、スクリーンショット画像とその説明文の組を量産するために text wrapping break を使うことはよくあるのではと思います。

image.png

しかしながらこの text wrapping break は Word for Windows では普通にドキュメントに挿入できるのですが、 Word for Mac ではなぜか挿入する方法がありません。

Word for Windows (「文字列の折り返し」で挿入されるのが text wrapping break):
image.png

Word for Mac (「文字列の折り返し」がない):
image.png

それでは Mac では text wrapping break は全く使えないのかというとそうではなく、 Windows で作った text wrapping break を含む Word ドキュメントを Mac で開くと普通に機能しますし、それを別の場所にコピペすることもできます。

Text wrapping break を使ったサンプル text-wrapping-breaks.docx を用意したのでダウンロードして確認してみてください。

OOXML の text wrapping break

Text wrapping break は Open Office XML の仕様 によると <w:br w:clear="all"/> で表される改行のことのようです。

text-wrapping-breaks.docx を unzip して grep してみれば、これが文中で使われていることが実際に確認できます。

$ unzip text-wrapping-breaks.docx -d out
Archive:  text-wrapping-breaks.docx
  inflating: out/[Content_Types].xml  
  inflating: out/_rels/.rels         
  inflating: out/word/_rels/document.xml.rels  
  inflating: out/word/document.xml   
 extracting: out/word/media/image6.svg  
 extracting: out/word/media/image1.png  
 extracting: out/word/media/image2.svg  
 extracting: out/word/media/image3.png  
  inflating: out/word/theme/theme1.xml  
 extracting: out/word/media/image5.png  
 extracting: out/word/media/image4.svg  
  inflating: out/word/settings.xml   
  inflating: out/word/fontTable.xml  
  inflating: out/docProps/core.xml   
  inflating: out/docProps/app.xml    
  inflating: out/word/styles.xml     
  inflating: out/word/numbering.xml  
  inflating: out/word/webSettings.xml  

$ xmllint --format out/word/document.xml | grep -B6 'clear="all"'
        <w:t>たとえば、一致する表紙、ヘッダー、サイドバーを追加できます。</w:t>
      </w:r>
      <w:r w:rsidR="00FC2804">
        <w:rPr>
          <w:rFonts w:ascii="游明朝" w:eastAsia="游明朝" w:hAnsi="游明朝"/>
        </w:rPr>
        <w:br w:type="textWrapping" w:clear="all"/>
--
        <w:t>テーマとスタイルを使って、文書全体の統一感を出すこともできます。</w:t>
      </w:r>
      <w:r>
        <w:rPr>
          <w:rFonts w:ascii="游明朝" w:eastAsia="游明朝" w:hAnsi="游明朝"/>
        </w:rPr>
        <w:br w:type="textWrapping" w:clear="all"/>

なお text-wrapping-breaks.docx を Google Docs や LibreOffice に持っていってみたところ、いずれも正しくレンダリングされませんでした。実はあまり使われていない機能なのかもしれません。

マクロで text wrapping break を挿入する

Text wrapping break の正体がわかったところで、ではなぜ Word for Mac ではこれが挿入できないんだろうと Microsoft のフォーラムで尋ねてみました。

結果としてその理由はわかりませんでしたが、代替手段として Word の VBA マクロを使って text wrapping break を挿入する方法を教えてもらいました。

Sub InsertTextWrappingBreak()
    Dim oRange As Range

    Set oRange = Selection.Range
    With oRange
        .Collapse Direction:=wdCollapseStart
        .InsertBreak Type:=wdTextWrappingBreak
    End With
End Sub

このマクロを登録するには Word のメニューより「ツール」→「マクロ」→「マクロ…」を選択します。マクロのダイアログが出ますので「マクロ名」に InsertTextWrappingBreak と入力して「+」ボタンを押してください。

すると Visual Basic Editor が開きます。サブルーチン InsertTextWrappingBreak のテンプレートがすでに入力されていますので、上記の Visual Basic コードで置き換えて、保存ボタン :floppy_disk: を押して保存してください。

image.png

再度マクロのダイアログを開くと InsertTextWrappingBreak が見えますので、これを選択して「実行」ボタンを押すと、ドキュメントのカーソル位置に text wrapping break を挿入することができます。

さらに、このマクロ実行をツールバーに登録することで text wrapping berak を挿入するボタンを作ることができます。Word メニューの「環境設定…」 → 「リボンとツールバー」 → 「クイックアクセスツールバー」を開き、左側の「コマンドの選択」で「マクロ」を選んで、さきほど登録した VBA マクロの名前を選択して左側から右側にコピーしてください。

するとクイックツールバーに謎の ○ アイコンが出現します。これをクリックするとカーソルの位置に text wrapping break を挿入することができます。

image.png

個人環境のカスタマイズとしては、これで十分なのではないかと思います。

まとめ

今回 Word で大量のスクリーンショット画像を含む業務マニュアルを作ってみましたが、スタイルや改ページを納得いくまで調整するのに思った以上に時間をとられてしまい、非常に疲れました。しかしながら VBA マクロによる機能拡張や Visual Basic Editor のような開発環境を知ることができたのはよい経験でした。

やはり Qiita や Discourse のような Markdown で、細かいレイアウトを気にせず気楽に書けるのがいちばんよいと思ったので、次回はそのようなドキュメント制作環境を整備して作ってみたいと思います。

yaegashi
Linux や Unix が得意で低レベルなことが好きなエンジニアです
https://l0w.dev
bandainamcostudios
バンダイナムコスタジオは、家庭用ゲームソフト、モバイルコンテンツ、の企画・開発・運営、ゲームに関する技術研究・開発を行っている会社です。
https://www.bandainamcostudios.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした