Office関連

テキストボックスの中にある表を操作するWordマクロ

Yahoo!知恵袋で、「Wordマクロでテキストボックスの中にある表の文字列を取得したい」との質問がありました。

コードとしては、下記のようなコードで対応できるかと思います。

Option Explicit

Public Sub Sample()
  With ActiveDocument.Shapes("Text Box 1") 'Shapeオブジェクト指定
    With .TextFrame.TextRange
      If .Tables.Count > 0 Then
        With .Tables(1) 'テキスト ボックスの中の表指定
          Debug.Print .Cell(1, 1).Range.Text '指定したセルの文字列取得
          With .Cell(2, 2).Shading '指定したセルの背景色設定
            .Texture = wdTextureNone
            .BackgroundPatternColor = wdColorYellow
          End With
        End With
      End If
    End With
  End With
End Sub

上記コードを実行すると、下図のようにテキストボックスの中にある表の、左上のセル(Cell(1, 1))の文字列をイミディエイト ウィンドウに出力し、真ん中のセル(Cell(2, 2))の背景を黄色で塗りつぶします。

WordVBA_Nested_Table_01

Wordマクロでよく引っ掛かるのが、こういった入れ子になっているオブジェクトの対応ですね。
構造が下記のように深くなっているので、普通に「ActiveDocument.Tables」と書いただけでは対応できません。

  • Shape
    • └TextFrame
      • └TextRange (Range)
        • └Tables
          • └Table (Tables.Item(n))

このように深い階層のオブジェクトを調べる場合には、下図のようにローカル ウィンドウが活用できるでしょう。

WordVBA_Nested_Table_02

ローカル ウィンドウの使い方は、Excel MVPである伊藤さんのブログ「インストラクターのネタ帳」に色々な記事がありますので、そちらをどうぞご参照ください。

WebDriverを使わずMicrosoft Edgeを制御するC#コード前のページ

セル内にあるブックマークをカウントするWordマクロ次のページ

関連記事

  1. Office関連

    テスト用の文字列を挿入するWordマクロ

    文字列操作を行うマクロを書いているとき、テスト用に「あいうえおかきくけ…

  2. アイコン一覧

    Office 2013 アイコン一覧(I)

    ・Office 2013 アイコン一覧 NUM…

  3. Office関連

    PowerPoint 2013でYouTubeの動画を挿入する。

    2014/5/23 追記:いつの間にか「ビデオの挿入ダイアログ」が…

  4. Office関連

    図形の結合を行うPowerPoint マクロ(ExecuteMsoメソッド編)

    Excel MVPの伊藤さんのブログで、PowerPointの「図形の…

  5. Office アドイン

    [Office用アプリ]TechEd North America 2013のセッション資料

    アメリカ・ニューオリンズで現地時間6月3日から6日にかけて開催された開…

  6. Office関連

    オデッセイ コミュニケーションズ主催のWord活用無料セミナーに参加しました。

    Club Microsoft会員限定、オデッセイ コミュニケーションズ…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP