つらつら Excel VBA

私の備忘録です。

オートシェイプを画像として保存

'オートシェイプを画像として保存
Sub saveShapeImage(myShape As Shape, outputPath As String)
    
    'シート内にチャートオブジェクトを作成
    Dim myChart As ChartObject
    Set myChart = ActiveSheet.ChartObjects.Add( _
        Left:=0, _
        Top:=0, _
        Width:=myShape.Width, _
        Height:=myShape.Height)
    
    myShape.CopyPicture Format:=xlBitmap 'オートシェイプを画像コピー
    
    With myChart
        .Chart.ChartArea.Format.Line.Visible = msoFalse '枠線非表示
        .Chart.Parent.Select 'チャートを選択
        .Chart.Paste 'チャートに貼り付け
        .Chart.Export outputPath 'チャートを画像として保存
        .Delete 'チャートを削除
    End With
    
End Sub