【コード】表の行を追加・削除するWordマクロ(簡易版)

昨日に続いて、日経パソコンでの第3回目の連載記事の表の行を挿入するマクロに関する追加説明です。

まず、「単純作業の繰り返しこそ自動化せよ 」の2ページ目と3ページ目をご覧ください。

こちらで紹介したものは、表の行を追加・削除するマクロでした。

実行するたびに、ダイアログボックスが現れて、追加する行数や削除する行数を入力できます。

ただ、毎回毎回、このような表示が面倒という方のために、もっとシンプルなマクロを紹介いたします。

このマクロでできること

カーソルを表中に置いてある場合、カーソル位置の下に指定した数の行を挿入します。

以下のように2行目にカーソルがあります。5行追加してみます。

表

5行追加されて、カーソルが追加した行の先頭に行きました。

表

また、同様にカーソル位置の下にある指定した数の行の削除ができます。

上記のように3行目にカーソルがある状態で、100行削除するマクロを実行します。

表

3行目以降全てが削除されて、表は2行だけ残ります。

上記のように、指定した行数が、表の実際の行数を上回る場合には、カーソル位置の下の行を全て削除して処理が終了します。

表の数十の行を自動で削除するのは爽快です。

自動処理の動きが見えると、なぜか得をした気分になるから不思議です。

意味もなく、何度も表を書いてまた削除して、、、。繰り返し実行してしまいますね(笑)。

マクロの解説

(1)行の追加

5行追加するように設定しました。

挿入する行数を変更する場合には、この5の数字を変更します。

(2)行の削除

100行削除するように設定しました。

カーソルより下にある行を全て削除することを目的にしていますので、この数は200行でも300行でもかまいません。

5行や10行に設定してもいいですし、1行にすれば、内容を確認しながら1行ずつ表を消す場合にも使えますね。

いずれのマクロも、Informationプロパティを用いて、カーソル位置が表内であるかどうかを調べています。詳細は、「カーソル位置の行番号を取得する方法 」をご覧ください。

マクロ


Sub 行の追加()
  If Selection.Information(wdWithInTable) = True Then
    Selection.InsertRowsBelow 5
    Selection.Collapse direction:=wdCollapseStart
  End If
End Sub

Sub 行の削除()
  Dim i As Integer
  For i = 1 To 100
    If Selection.Information(wdWithInTable) = True Then
      Selection.Rows.Delete
    Else
      Exit For
    End If
  Next i
End Sub

トップへ戻る