この回答の最後にあるVBAサブルーチンは、これを行う方法を示しています。
マルチセグメントの選択を心配する必要がないように、それは最初の出発点にそれを崩壊、現在の選択を使用:
Selection.Collapse Direction:=wdCollapseStart
それは、それがテーブル
内部の選択を確実にすることをチェック
If Not Selection.Information(wdWithInTable) Then
MsgBox "Can only run this within a table"
Exit Sub
End If
Selection.Tables(1)
を参照すると、テーブルにアクセスできます。
以下のコードは、単に垂直バーのマーカーを挿入または削除するか、テーブルの各行の開始セルの各々をトグル概念の簡単な証拠でした。
Sub VertBar()
' Collapse the range to start so as to not have to deal with '
' multi-segment ranges. Then check to make sure cursor is '
' within a table. '
Selection.Collapse Direction:=wdCollapseStart
If Not Selection.Information(wdWithInTable) Then
MsgBox "Can only run this within a table"
Exit Sub
End If
' Process every row in the current table. '
Dim row As Integer
Dim rng As Range
For row = 1 To Selection.Tables(1).Rows.Count
' Get the range for the leftmost cell. '
Set rng = Selection.Tables(1).Rows(row).Cells(1).Range
' For each, toggle text in leftmost cell. '
If Left(rng.Text, 2) = "| " Then
' Change range to first two characters and delete them. '
rng.Collapse Direction:=wdCollapseStart
rng.MoveEnd Unit:=wdCharacter, Count:=2
rng.Delete
Else
' Just insert the vertical bar. '
rng.InsertBefore ("| ")
End If
Next
End Sub
完璧!これはまさに私が@enifederを必要としたものです:ActiveDocument.Range(0、Selection.Tables(1).Range.End).Tables.count – DRC