スポンサーリンク

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


関連記事

Accessでユーザー定義関数を作る!基本はエクセルの場合と同じ方法でOK!

エクセル【EXCEL】でユーザー定義関数は、よく使いますが・・・ そういえば、アクセス【ACCESS】では、使った事がないなと思い・・・ 作り方を整理してみました。 基本はEXCELの場合と同じ 試し …

L2スイッチのコマンド忘備録!ポートのオン・オフとVLANの設定ができれば日常のメンテナンス程度ならOK?

へっぽこヘタレシステム管理者の管理人です。 管理人の職場のネットワークは、主にアライドテレシスのスイッチを導入しています。 実際には、あまりコンフィグを触る機会はほとんどありませんが・・・ ごくたまに …

WORDのVBAでかなり悩んだ!ユーザーフォームのテキストボックスからワードに文字列を入力する方法!

へっぽこヘタレシステム管理者の管理人です。 さて、エクセルではマクロやVBAを弄ることは、たまにあるのですが・・・ 今回は、ワードでVBAを組んで、ユーザーフォームからワード本文にテキストを送信する方 …

EXCELのVBAを使ってDB【Oracle】に接続してSQLを叩く方法!

へっぽこヘタレシステム管理者の管理人です。 さて・・・ 長年、【Oracle】等のDBに接続してSQLを叩く場合は・・・ EXCELでのやり方が分からず・・・ ず~っとMS-ACCESSを使っていまし …

Access・アクセス・VBA・コントロール名を変数を使って指定する方法!ループ処理のコードが簡略化できる!

へっぽこヘタレシステム管理人の管理者です。 さて、アクセスで簡易なソフトウエア的なもの?を作っていると・・・ 一つのコマンドボタンで更新クエリやデータの追加クエリを何度も実行しなければいけない場合があ …

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