スポンサーリンク

050-VBA

WORDの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の登録等は、こちらのサイトから!

スポンサーリンク
スポンサーリンク

-050-VBA

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

RPA・WinActorでGmail操作!ブラウザとの相性は悪い気がする?

絶賛底辺中の地方公務員の管理人です。 さて、今日もWinActorネタです。 本日は、WinActorでのブラウザ操作となります。 職場のグループウエアは、IE11で動くものですが・・・ 仕事の関係で …

エクセルマクロの本を買ってみた!【EXCEL自動化の教科書】!35万部も売れているらしいが?

管理人はこれまで、エクセルのマクロを仕事上いくつも作成していますが、すべて独学とGoogle検索だけで済ませていました。 真面目に本を読んで知識をインプットした事がなかったので、1冊本を買ってみようと …

EXCELのVBAを使って任意のファイルのフルパスを取得する!

へっぽこヘタレシステム管理者の管理人です。 さて、ある部署からエクセルのマクロの作成を依頼され・・・ その過程で、いくつか部品を作ったので忘備録として掲載します。 スポンサーリンク ブログランキングに …

EXCELやACCESSの関数やVBA・SQL文等の忘備録まとめ!

このページでは、管理人が良く使う次のソフト MS-EXCEL(エクセル) MS-ACCESS(アクセス) Oracle(オラクル)SQL について、良く使うけれどもすぐに忘れて、何度も調べ「関数やVB …

相談業務の履歴管理!エクセル【EXCEL】のファイル共有ではかなり無理があるのでアクセス【ACCESS】でデータベースを共有する方法!

日々底辺を彷徨うヘタレなアラフィフオヤジの管理人です。 本日は・・・ ちょっと仕事の関係で他の部署から相談があり・・・ 相談業務の履歴管理について、アクセスで簡単なデータベースを作成しました。 従来の …

スポンサーリンク
スポンサーリンク
スポンサーリンク