写真をセルの「中に」入れることはできず、「上に」入れるだけです。すべての画像がワークシート上に「浮かびます」。画像の Top および Left プロパティをセルの Top および Left に設定することにより、画像をセル上に配置できます。
Sub AddPicOverCell(path As String, filename As String, rngRangeForPicture As Range)
With Application
Dim StartingScreenUpdateing As Boolean
Dim StartingEnabledEvent As Boolean
Dim StartingCalculations As XlCalculation
StartingScreenUpdateing = .ScreenUpdating
StartingEnabledEvent = .EnableEvents
StartingCalculations = .Calculation
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Dim Top As Single, Left As Single, Height As Single, Width As Single
Dim file As String
Dim ws As Worksheet
file = path + "/" + filename + ".png"
Top = rngRangeForPicture.Top
Left = rngRangeForPicture.Left
Height = rngRangeForPicture.Height
Width = rngRangeForPicture.Width
Set ws = rngRangeForPicture.Worksheet
ws.Shapes.AddPicture file, msoCTrue, msoTrue, Left, Top, Width, Height
With Application
.ScreenUpdating = StartingScreenUpdateing
.EnableEvents = StartingEnabledEvent
.Calculation = StartingCalculations
End With
End Sub
そして、次のように呼び出します。
AddPicOverCell "C:\", "Pic", ActiveSheet.Range("A1")
注:これにより、サブを呼び出すときに指定したセルと同じサイズとシート上の位置に画像が配置され、サイズが変更されます。これにより、画像を挿入するセルまたは範囲に画像が挿入されます。これは、セルの範囲B5:G25
または私の例のように単一のセルのようRange("A1")
に、画像が範囲内のすべてのセルをカバーする場合もあります。