Sub test()
Dim x As Variant
x = Application.GetOpenFilename("gif,*.gif")
If VarType(x) = vbBoolean Then Exit Sub
With ActiveSheet.Shapes.AddPicture(x, msoTrue, msoFalse, 0, 0, 0, 0)
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
End With
End Sub
上記のマクロで挿入した画像は元ファイルとのリンクを保持します。
なので1回だけ実行すれば後はマクロ不要です。
#念のため、マクロ実行方法。
[Alt]キー押しながら[F11][i][m]。
アクティブなBookに「標準モジュール」というものが追加されます。
その白背景ウィンドウ(カーソルがある位置)に
上記マクロ Sub test()~End Sub までをコピー&ペースト直後[F5]キー、で実行です。
画像挿入後、必要であればサイズなどを適宜修正し、
必要なシートにコピーしてください。
元のファイル(例えばa.gif)を同名上書きして更新した後に
Bookを開き直せばシート上の画像が更新されます。
操作だけでやれるかな。無理な気がする。
ーー
下記でやってみた。
Sheet1にImageコントロールを貼り付ける。(コントロールツールボックスのImage)
そのコントロールに画像を貼り付ける。(プロパティのPictureで指定)
位置や大きさは都合よく決めて、他のシートに於いても、これに習い同じ位置・大きさにするものとする。
標準モジュールに
Private Sub test01()
Worksheets(1).OLEObjects (1)
t = Worksheets(1).OLEObjects(1).Top
l = Worksheets(1).OLEObjects(1).Left
h = Worksheets(1).OLEObjects(1).Height
w = Worksheets(1).OLEObjects(1).Width
For i = 2 To 3
Worksheets(i).DrawingObjects.Delete
Worksheets(1).OLEObjects(1).Copy
Worksheets(i).Paste
Set ig = Worksheets(i).OLEObjects(1)
ig.Top = t
ig.Left = l
ig.Height = h
ig.Width = w
Next i
End Sub
これ実行する。
ーー
Sheet2、Sheet3においてSheet1と同じ場所で同じ大きさで、同じ画像が出現するはず。
上記例では2シートに複写しているが、10シートの場合はFor i = 2 To 10になる。
===
留意事項
1シートに1ピクチュアーボックス、1画像に限る。他にコントロールがない物とする。
作る対象のシートをシートタブ的に左に10シートなりを集めておくこと。
一番左のシートを基にする。
--
この辺はVBA情報も少なく、経験・勉強不足で、もっと良いやり方があるかもしれない。
エクセルに画像を貼り付けて、何かの仕事で使うようなのは、エクセルに過ぎたニーズだと思うのだが。