MW211 EXIT

devlog
ExcelVBA/オートシェイプ画像をフォームへ出力
2019年02月09日
オートシェイプとしてシートに貼り付けられた画像は
そのままフォームには表示できない模様。
一旦、画像ファイルとして出力して、それをフォームに表示する形になる。
しかも画像ファイルとして出力する際には、グラフの貼り付けて保存する形をとる。
┌──────────────────────────────────────┐
│Dim 画像 As Shape, 画像パス As String, 仮グラフ As Variant                  │
│For Each 画像 In ActiveSheet.Shapes                                         │
│    If 画像.Type = 13 Or 画像.Type = 11 Then ' 画像の場合                   │
│        画像パス = ThisWorkbook.Path & "\ダミー.jpg"                        │
│                                                                            │
│        画像.CopyPicture                                                    │
│        Set 仮グラフ = ActiveSheet.ChartObjects.Add(0, _                    │
│                                                    0, _                    │
│                                                    画像.Width, _           │
│                                                    画像.Height).Chart      │
│        仮グラフ.Parent.Select  ' Excel2016特有の不具合対策                 │
│        仮グラフ.Paste                                                      │
│        仮グラフ.Export Filename:=画像パス, filtername:="JPG"               │
│        仮グラフ.Parent.Delete                                              │
│                                                                            │
│        ユーザフォーム.画像.Picture = LoadPicture(m画像パス)                │
│        ユーザフォーム.Show                                                 │
│        Kill 画像パス                                                       │
│        ' ユーザフォーム側でクローズして戻ってくる想定                      │
│    End If                                                                  │
│Next 画像                                                                   │
│MsgBox "おしまい", vbInformation, "終"                                      │
└──────────────────────────────────────┘
分類:ExcelVBA