Home » ワードマクロ・Word VBAの使い方 » Office連携 » Word VBAでExcelの図形を操作する

Word VBAでExcelの図形を操作する

動作検証バージョン:Windows 11 Home + 64bit Word & Excel バージョン 2407(ビルド17809.20000クイック実行)ベータチャネル

「ワードvbaエクセル図操作」
といった検索キーワードでアクセスがありました。
Word VBAから、Excelのシート上に存在する図を操作するにはどのようなコードを書けばいいのかを調べていらしたのでしょう。

「図」と表現されているものが何なのかが不明なこともあり、ワークシート上のShapeオブジェクトを操作するサンプルをご紹介しておきます。

ExcelのShapeを操作するサンプルプロシージャ

長方形が1個だけ存在するワークシートがアクティブな状態で、以下のSubプロシージャを実行してください。

Sub Excelの図形を取得して移動する()
On Error GoTo ErrHandl
 
 With GetObject(Class:="Excel.Application")
  With .ActiveSheet.Shapes(1)
   .Left = 0
   .Top = 0
  End With
 End With

Exit Sub
ErrHandl:
 Select Case Err.Number
  Case 429
   MsgBox "Excelが起動していないようです。"
  Case -2147024809
   MsgBox "ExcelのアクティブシートにはShapeが存在しないようです。"
  Case Else
   MsgBox Err.Description & vbCrLf & Err.Number
  End Select
 Err.Clear
End Sub

正常に実行できると、Excelのアクティブシート上に存在する長方形の左上隅がワークシートの一番左上に移動します。

サンプルプロシージャで行っている処理

最初に、VBAのGetObject関数の引数Classに文字列「Excel.Application」を指定することで、起動しているExcel.Applicationへの参照をまず取得しています。

With GetObject(Class:="Excel.Application")

Excel.Applicationへの参照を取得した後は、実質的にExcel VBAのコードです。

拙著『理解するExcel VBA/図形操作の基本』の[2-1. 位置に関わるプロパティ・メソッド]で、以下のようなコードをご紹介しています。

With ActiveSheet.Shapes(1)
 .Left = 0
 .Top = 0
End With

上記のSubプロシージャはほとんど同じですから、Word VBAのWithステートメント内ですから、「ActiveSheet」の直前にも「.」が必須です。

With .ActiveSheet.Shapes(1)

最終更新日時:2024-06-19 09:41

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Office連携 » Word VBAでExcelの図形を操作する

「Office連携」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.