エクセルVBAで使用するコードの備忘録。VBAで指定したWord文書内に含まれる表の行や列を削除するコード。
Wordファイルを開く
Wordファイルを開くにはワードファイルを操作するためのオブジェクトを作成する必要があります。作成する際のコードの書き方は参照設定を使う場合とそうでない場合で異なりますが(詳しくはこちらをご覧ください)、基本的には参照設定を使うことをお勧めします。
参照設定は以下のように、VBAのコードエディタから「ツール > 参照設定」と進み、「Microsoft Word XX.X Object Library」にチェックを入れることで設定できます(XX.X部分の数字はバージョンによって変わります)。
パスワード付ファイルを開く方法などWordファイルを開く方法についてはこちらでも記載していますので詳しく知りたい場合はご参照ください。
表の行・列を削除する
Word文書内に含まれる表(Table)はWord.Documentオブジェクト下のTablesオブジェクトで管理されています。文書内に複数の表が含まれる可能性が考えられるのでTablesオブジェクトは配列になっています。そのためIndex番号を使って何番目の表なのかを指定してやる必要があります。
行や列を表すオブジェクトはTableオブジェクト下のRowsやColumnsです。配列となっているのでIndexを指定することで上から何行目、あるいは左から何列目かを指定してやります。指定個所を削除するにはDeleteメソッドを使用すればOKです。
サンプルコード
下記のサンプルコードでは、Word文書に含まれるIndex番目の表の指定行・列を削除しています。
なお、コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。
Public Sub DeleteRowColumn()
'--- Wordのアプリケーションオブジェクト ---'
Dim objWord As Word.Application
Set objWord = New Word.Application
objWord.Visible = True
'--- 開くワードファイルのパス ---'
Dim docPath As String
docPath = "[ワードファイルのパス]"
'--- ワードドキュメントを開く ---'
Dim objDoc As Word.Document
Set objDoc = objWord.Documents.Open(docPath)
'--- 行・列の削除 ---'
objDoc.Tables([Index]).Rows([行番号]).Delete
objDoc.Tables([Index]).Columns([列番号]).Delete
End Sub