別のアプローチで実行してみようと思います。
前回までの記事で紹介しました方法では、「改ページ」の挿入や段落書式の「改ページ位置の自動修正」機能の、「段落前で改ページする」を用いました。
今回は、段落書式の「改ページ位置の自動修正」機能の、「次の段落と分離しない」を用います。
▼このマクロでできること
本文中のすべての表に対して、段落書式の「改ページ位置の自動修正」機能の「次の段落と分離しない」をオンに設定します。
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20130317/08/gidgeerock/f2/3e/p/t02200279_0440055712460667163.png?caw=800)
その結果、表がページをまたぐ場合に、次のページの先頭から表示されます。
表に段落設定が加わります。よって、一度設定をすると、表が勝手にレイアウト変更するようになります。
例えば、文章作成時に表の行数が増えたり、表のレイアウトが変更されたりして、表がページをまたぎそうになると、リアルタイムで表が次ページ先頭に移動します。
この設定をオンにするマクロ(マクロ1)とオフにするマクロ(マクロ2)を用意しました。
▼マクロの解説
Fore Each ... Nextステートメントの典型的な構文を用いています。
青字部分が、段落書式の「改ページ位置の自動修正」機能の「次の段落と分離しない」に対応します。
▼マクロ1(設定オン)
Sub ページをまたぐ表を次のページ先頭から開始させる_4()
Dim myTable As Table
For Each myTable In ActiveDocument.Tables
myTable.Range.ParagraphFormat.KeepWithNext = True
Next myTable
Set myTable = Nothing
End Sub
▼マクロ2(設定オフ)
Sub ページをまたぐ表を次のページ先頭から開始させる_5()
Dim myTable As Table
For Each myTable In ActiveDocument.Tables
myTable.Range.ParagraphFormat.KeepWithNext = False
Next myTable
Set myTable = Nothing
End Sub
▼関連記事
ページをまたぐ表を次ページの先頭から開始(その1)
ページをまたぐ表を次ページの先頭から開始(その2)
ページをまたぐ表を次ページの先頭から開始(その3)
ページをまたぐ表を次ページの先頭から開始 (手動設定方法)