WORDのVBA【マクロ】に悪戦苦闘する!せっかくちょっと勉強したので忘備録として使いそうな記述を残しておく!

スポンサーリンク
050-VBA

へっぽこへたれシステム管理人の管理者です。

ワードは、20年以上使っていますが、VBA【マクロ】を使うのは生まれて初めてでした・・・

エクセルのVBAとは、記述が異なるというか・・・

別モノな感じですので、なかなか記述しずらい。

ネットにもあまり落ちていないので、かなりてこずりましたので、今回つかった記述を忘備録として残しておきます。

表を選択する

ActiveDocument.Tables(*).cell(*.*).Select

【*】は適宜変わります。【cell】は票の行と列を表します。

ActiveDocument.Tables(*).Cell(*.*).Range
スポンサーリンク

ブログランキングにご協力ください!
ブログランキング・にほんブログ村へ

を付けると範囲してして、次のように操作できる。

'表の文字列を消す(テーブル1の1列)
ActiveDocument.Tables(1).Cell(1, 1).Range.Delete

'表に文字列を挿入テーブルの1の1列)
ActiveDocument.Tables(1).Cell(1, 1).Range.Text = "入力する文字列"

カーソル移動

'例:列全体を選択した状態から先頭へ
Selection.Collapse Direction:=wdCollapseStart

'カーソルのある行の先頭へ
Selection.HomeKey Unit:=wdLine

'カーソルのある行の最後へ
Selection.EndKey Unit:=wdLine

'カーソルのある行から右へ(シストで選択)countで移動量を指定する
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend

'カーソルのある行から左へ(シストで選択)countで移動量を指定する
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend

'Extend:=wdExtend を消せばカーソル移動のみ

'カーソルを上へ
Selection.MoveUP

'カーソルを下へ
Selection.MoveDown

インデントの位置を取得

'インデント位置の取得
Dim rowhead As Integer
rowhead = Selection.ParagraphFormat.FirstLineIndent
スポンサーリンク

行番号を取得

'行番号取得
Dim rownum as Integer
rownum = Selection.Information(wdFirstCharacterLineNumber)

表の中でループさせる

'表の行数分繰り返し
Do While Selection.Information(wdWithInTable)

  繰り返し作業を記述

Loop

テストマクロ

このマクロは、ワードに貼り付けた2列の表について、2列目の各行の先頭文字を取得するものです。

表自体は、1行で作成していますが、2ページ目の表の行数は、1からリセットされる仕様のようです。

Sub test()

    '最初の表の2列目を選択
        ActiveDocument.Tables(1).Columns(2).Select


    '選択した2列目の先頭にカーソル移動
        Selection.Collapse Direction:=wdCollapseStart


    '表の行数分繰り返し
        Do While Selection.Information(wdWithInTable)
        
            '行番号取得
                rownum = Selection.Information(wdFirstCharacterLineNumber)
        
            '行の先頭文字列を取得
                Selection.HomeKey Unit:=wdLine
                Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
                
            'デバッグプリント
                Debug.Print rownum & " " & Selection.Text & vbCr
                
                Dim test As String
                test = test & rownum & " " & Selection.Text & vbCr
                
            '行の先頭にカーソル移動
                Selection.HomeKey Unit:=wdLine
            
            
            '次の行に移動
                Selection.MoveDown
        Loop
        
        MsgBox test
End Sub

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

コメント

タイトルとURLをコピーしました