動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2507(ビルド19029.20184クイック実行)
ワークシート上の画像をセル内に配置するExcel VBAのコードをご紹介しました。
逆の処理もVBAから可能です。
[スポンサードリンク]
セル内画像をセルの上に配置するサンプルマクロ
以下のExcelマクロを実行すると、アクティブセルの画像がセル上に配置されます
Sub アクティブセルの画像をセルの上に配置する()
ActiveCell.PlacePictureOverCells
End Sub
ActiveCell.PlacePictureOverCells
End Sub
Rangeオブジェクトに用意されているPlacePictureOverCellsメソッドで、セル内の画像をセルの上に配置できます。
アクティブセルに画像がなかったとしても、エラーは発生しません。
Range.PlacePictureOverCellsメソッドの引数AsReference
オブジェクトブラウザーなどで確認できるとおり、Range.PlacePictureOverCellsメソッドには、引数AsReferenceを指定できます。
ヘルプも用意されておらず、引数AsReferenceに何を指定できるのかもわからないまま、以下のマクロを試したらとりあえずの挙動が確認できました。
Sub アクティブセルの画像をセルの上に配置する()
ActiveCell.PlacePictureOverCells AsReference:=True
End Sub
ActiveCell.PlacePictureOverCells AsReference:=True
End Sub
AsReference:=Trueを指定して実行したときには、下図のようにセル内にも画像が表示されたまま、セルの上に画像が表示されました。
それに対し、先ほどのように引数を指定しない場合や、
ActiveCell.PlacePictureOverCells
引数AsReferenceにFalseを指定した場合には、
ActiveCell.PlacePictureOverCells AsReference:=False
下図のような状態になるようです。
[スポンサードリンク]
- Older:VBAでフルパスからファイル名を取得する
Home » Excel VBA Rangeオブジェクト » VBAでセル内画像をセルの上に配置する