Excel内の画像をVBAから出力する方法です。
冒頭からなんですが、ちょっと問題があるので注意が必要です。
- (jpegに保存するため) 画質が少々劣化する&透過画像はつくれない
- ごく稀に出力されずに真っ白のアイコンになってしまう
- 背景も一緒に画像化するので、必要ならセルを都合の良い色で染めておく必要がある
Dim shps As Shapes: Set shps = Table_Icons.Shapes
Dim shp As Shape
Dim area As Object
For Each shp In shps
If shp.Type = msoPicture Then
Set area = Intersect(Range(shp.TopLeftCell, shp.BottomRightCell), rngTarget)
If Not (area Is Nothing) Then
' 画像があればキャプションをとってファイル保存
shp.CopyPicture xlScreen
Charts.Add.Location xlLocationAsObject, Table_Icons.Name
Dim myChart As Object: Set myChart = Table_Icons.ChartObjects(1)
With myChart
.Width = shp.Width
.Height = shp.Height
.Chart.Paste
.Chart.ChartArea.Border.LineStyle = 0
.Chart.Export ThisWorkbook.path & "作った隠しディレクトリ\ファイル名.jpg", "JPEG"
.Delete
End With
Exit For
End If
End If
Next
だったらバイナリデータを保持しておいて、それで出力すれば良いと思います。
他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。
1件のコメント