「ワードvbaエクセル図操作」
といった検索キーワードでアクセスがありました。
Word VBAから、Excelのシート上に存在する図を操作するにはどのようなコードを書けばいいのかを調べていらしたのでしょう。
「図」と表現されているものが何なのかが不明なこともあり、ワークシート上のShapeオブジェクトを操作するサンプルをご紹介しておきます。
ExcelのShapeを操作するサンプルプロシージャ
長方形が1個だけ存在するワークシートがアクティブな状態で、以下のSubプロシージャを実行してください。
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の図形を操作する