表の行数を増減させるマクロの紹介です。
表の行を追加・削除するマクロ(簡易版) や、PC Online の単純作業の繰り返しこそ自動化せよ にて紹介したマクロの丁寧なバージョンです。
<目次>
このマクロでできること
表に任意の数の行を追加したり削除したりできます。
細かな使い方は、上記記事をご覧ください。
ちょっとしたことなのですが、Wordの機能を使うよりも便利だと思います。
我々翻訳者が表を作るのは、納品メモを作成するときだと思います。
記載項目が増えれば、行を増やすというパターンが多いですよね。
または、不要な行を削除するということもあると思います。
そのようなときに、簡単に実行できます。
私は、行の挿入を[Alt] + [L]に割り付けて、行の削除を [Alt] + [D]に割り付けています。
→キーボードへの割り付け方法はこちら 。
マクロの解説
Do...Loopステートメントにて、InputBoxにて数値が入力されるまでループを繰り返しています。
ひらがなやアルファベットを入力しても先に進めません。
通常の利用では、数万行も行を追加することはないと思いますが、Wordの仕様にあわせて、一度に追加できる上限を32767行としました。
これくらい行を追加するのであれば、Excelを使ってください。Wordには負担が大きすぎてかわいそうです。
マクロ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 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 |