表の行数を増減させるマクロの紹介です。
表の行を追加・削除するマクロ(簡易版) や、PC Online の単純作業の繰り返しこそ自動化せよ にて紹介したマクロの丁寧なバージョンです。
<目次>
このマクロでできること
表に任意の数の行を追加したり削除したりできます。
細かな使い方は、上記記事をご覧ください。
ちょっとしたことなのですが、Wordの機能を使うよりも便利だと思います。
我々翻訳者が表を作るのは、納品メモを作成するときだと思います。
記載項目が増えれば、行を増やすというパターンが多いですよね。
または、不要な行を削除するということもあると思います。
そのようなときに、簡単に実行できます。
私は、行の挿入を[Alt] + [L]に割り付けて、行の削除を [Alt] + [D]に割り付けています。
→キーボードへの割り付け方法はこちら 。
マクロの解説
Do...Loopステートメントにて、InputBoxにて数値が入力されるまでループを繰り返しています。
ひらがなやアルファベットを入力しても先に進めません。
通常の利用では、数万行も行を追加することはないと思いますが、Wordの仕様にあわせて、一度に追加できる上限を32767行としました。
これくらい行を追加するのであれば、Excelを使ってください。Wordには負担が大きすぎてかわいそうです。
マクロ
Sub 表_行挿入() Dim myLines As String If Selection.Information(wdWithInTable) = False Then Exit Sub Do myLines = InputBox("行数を入力してください。", "行の挿入", 1) If myLines = vbNullString Then Exit Sub Loop While IsNumeric(myLines) = False If CLng(myLines) >= 1 And CLng(myLines) <= 32767 Then Selection.InsertRowsBelow myLines Selection.MoveUp unit:=wdLine, Count:=1 Else MsgBox "1~32767の数値を入力してください。終了します。" Exit Sub End If End Sub Sub 表_行削除() Dim myLines As String Dim i As Integer If Selection.Information(wdWithInTable) = False Then Exit Sub Do myLines = InputBox("行数を入力してください。", "行の削除", 1) If myLines = vbNullString Then Exit Sub Loop While IsNumeric(myLines) = False If CLng(myLines) >= 1 And CLng(myLines) <= 32767 Then For i = 1 To myLines If Selection.Information(wdWithInTable) = True Then Selection.Rows.Delete Else Exit For End If Next i Else MsgBox "1~32767の数値を入力してください。終了します。" Exit Sub End If End Sub