以前の記事「【コード】表を特定の行数で分割するWordマクロ 」を発展させたものです。
分割した表を別のファイルに同時に書き出します。
Wordで動く翻訳チェックソフト「色deチェック」を使う場合、5000行以上の表(数百ページ)だったりしてファイルが大きいと処理が遅くなるため、小さなファイルに分割してそれぞれを処理したほうがよいことがあります。
<目次>
このマクロでできること
ファイルの1つ目の表を対象にした処理です。
表を100行ごとに分割して、分割した表を新規ファイルに貼り付けます。
マクロの解説
処理対象は、現在開いているファイルの1つ目の表です(10行目で指定)。
この表を、設定した行数(サンプルコードでは100行)で分割します(6行目)。
前回の記事と考え方でSplit メソッドを用いて分割します(15行目)。
今回の記事では、分割した表を別の新規ファイルに貼り付けますので、その処理を18行目~20行目で実行します。
24行目から26行目では、「最後に残った部分」を新規ファイルに貼り付けます。
たとえば、750行の表があった場合、100行ごとに表を分割するので、100行の表が7つと50行の表が1つ生成されます。この50行の表を「最後に残った部分」と呼んでいます。
マクロ
Sub 表の分割_新規文書に貼り付け() Dim myActDoc As Document '処理対象のファイル Dim myNewDoc As Document '新規ファイル Dim myTable As Table Const myRows = 100 '行数 '前処理 Set myActDoc = ActiveDocument Set myTable = myActDoc.Tables(1) '表を分割 Do While myRows < myTable.Rows.Count '表を2つに分割して後半の表をmyTableに設定 Set myTable = myTable.Split(BeforeRow:=myTable.Rows(myRows + 1)) DoEvents '分割後の前半の表(myTableの1つ前の表)を新規文書に貼り付ける Set myNewDoc = Documents.Add myNewDoc.Range.FormattedText = myTable.Range.Previous(wdTable) DoEvents Loop '分割後に最後に残った部分(myTable)を新規文書に貼り付ける Set myNewDoc = Documents.Add myNewDoc.Range.FormattedText = myTable.Range DoEvents '後処理 Set myActDoc = Nothing Set myNewDoc = Nothing Set myTable = Nothing End Sub
関連記事
- 【Word VBA】Memsourceのバイリンガルファイル(.docx)をA4サイズに変更するWordマクロ
- 【Word VBA】Wordの表の行と列を入れ替えるWordマクロ
- 【Word VBA】Wordの表をExcelにコピペするWordマクロ
- 【Word VBA】カーソル位置のセル番号を取得するWordマクロ
- 【Word VBA】カーソル位置の行番号を取得するWordマクロ
- 【Word VBA】セル内の文字の配置を変更するWordマクロ
- 【Word VBA】入れ子の表のスタイルを設定するWordマクロ
- 【Word VBA】文書中のすべての表を選択するWordマクロ
- 【Word VBA】文書中の表を新規文書に書き出すWordマクロ
- 【Word VBA】特定の列のフォント書式を変更するWordマクロ
- 【Word VBA】特定の文字列を含むセルを着色するWordマクロ
- 【Word VBA】表の1列目を両端揃えにするWordマクロ
- 【Word VBA】表の3行目から5行目を選択するWordマクロ
- 【Word VBA】表のセルの末尾に2行追加するWordマクロ
- 【Word VBA】表のセルを結合するWordマクロ
- 【Word VBA】表のセル毎にXMLデータを取得するWordマクロ
- 【Word VBA】表の列幅を揃えるWordマクロ
- 【Word VBA】表の特定の行の列数を調べるWordマクロ
- 【Word VBA】表の直後に改行記号を挿入する
- 【Word VBA】表の行を追加・削除するWordマクロ(改良版)
- 【Word VBA】表の行を追加・削除するWordマクロ(簡易版)
- 【Word VBA】表の配置を中央揃えにするWordマクロ
- 【Word VBA】表を特定の行数で分割するWordマクロ
- 【Word VBA】表を特定の行数で分割するWordマクロ(その2)
- 【Word VBA】表中の結合されたセルを着色するWordマクロ
- 【Word VBA】表中の結合されたセルを着色するWordマクロ(その2)
- 【Word VBA】表中の結合されたセルを着色するWordマクロ(その3)
- 【Word VBA】表中の結合・分割セルの有無を判定するWordマクロ
- 【Word VBA】表内の文字数を計算するWordマクロ
- 【Word VBA】表内の文字数を計算するWordマクロ(その2)