忍者ブログ

wordの表の左端に連番を入力するword VBA

2020年12月02日
ワードマクロ消えちゃったよ企画の第二弾。

Wordの表はExcelと違って一気に番号を入れるのがやりづらい。
リストスタイルで番号を付けることもできるけど、
連番の列って幅が狭いので、表が崩れたり、通番が狂ったりするのが怖いので
自動的に通番をふるマクロを作った。

イメージこんな感じ。
苦労の末、セルの結合してても動く仕様に。

Excelでは、結合されたセルへのアクセスは問題なかったけど、
wordの場合は左上以外のセルは存在しないことになっているようで
アクセスするだけでエラーを吐く。
なので、UI操作をベースにwordの空気を読む力を最大限に利用して作った。

  1. 表の外側なら中止
  2. 表の内側なら左上のセルを選択
  3. Tabボタンで遷移をしながら1列目にきたらカウンタを入力してインクリ
  4. 表の外に出たら終了
以下、ソース


Sub 表の左端に通番を振るv10r00()
If Selection.Information(wdWithInTable) = False Then
MsgBox "表内にカーソルを置いてから実行してください。"
Exit Sub
End If

Dim n As Long: n = 1
Dim objTableCell As Object
Set objTableCell = Selection.Tables(1).Cell(1, 1)

Do '-- Loop Until objTableCell Is Nothing
If objTableCell.ColumnIndex = 1 Then
If objTableCell.RowIndex <> 1 Then
objTableCell.Range.Text = n
n = n + 1
End If
End If
Set objTableCell = objTableCell.Next '次のセルへ(tabと同様)
Loop Until objTableCell Is Nothing '------------------------------
' objTableCell.Range.Text = objTableCell.RowIndex & "-" &objTableCell.ColumnIndex
End Sub

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字