「word vba 表を解除する」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Wordでは、表の中にカーソルを置くと自動的に表示される[表ツール]の、[レイアウト]タブ-[データ]グループ-[表の解除]ボタンから、
表を解除することができます。
「word vba 表を解除する」
という検索キーワードは、この表の解除を行う、Word VBA(Visual Basic for Applications)のコードを探している方によるものでしょう。
参考になりそうなマクロをいくつかご紹介しておきます。
選択されている単独の表の解除を行うサンプルマクロ
以下のようなマクロで、区切り文字をタブにして、選択されている表の解除が行われます。
Selection.Tables(1).ConvertToText _
Separator:=wdSeparateByTabs
End Sub
表を解除する操作をマクロ記録してみると、
Selection.Rows.ConvertToText _
Separator:=wdSeparateByTabs, _
NestedTables:=True
という、RowsコレクションオブジェクトのConvertToTextメソッドを使ったコードが作られます。
「ConvertToText」をオブジェクトブラウザーで検索してみると、
上図のとおり、TableオブジェクトにもConvertToTextメソッドが存在していることがわかったので、ここでは表が解除されることをわかりやすくするため、Rows.ConvertToTextではなく、
Selection.Tables(1).ConvertToText _
Separator:=wdSeparateByTabs
としました。
区切り文字をカンマにしたい場合は、引数・Separatorに定数・wdSeparateByCommasを指定すればOKです。
選択されている複数の表の解除を行うサンプルマクロ
以下のようなマクロにすれば、区切り文字をタブにして、選択範囲のすべての表の解除を行うこともできます。
Dim tbl As Table
For Each tbl In Selection.Tables
tbl.ConvertToText _
Separator:=wdSeparateByTabs
Next
End Sub
選択範囲のすべての表に対してループを回して、
For Each tbl In Selection.Tables
先のマクロと同じくTableオブジェクトのConvertToTextメソッドで、各表の解除を行っています。
tbl.ConvertToText _
Separator:=wdSeparateByTabs
ループ処理を行う対象を決めている、
For Each tbl In Selection.Tables
の部分を、
For Each tbl In ActiveDocument.Tables
にすれば、アクティブな文書内のすべての表を解除することもできます。
最終更新日時:2021-09-03 20:59
Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » 表を解除するWordマクロ