• ベストアンサー

EXCEL2007-VBAフォーム上のイメージオブジェクトに図形が設定

EXCEL2007-VBAフォーム上のイメージオブジェクトに図形が設定されているかをチェックするには いつも親切な回答ありがとうございます。 VBAフォーム上のイメージに図形が設定されているかをチェックする方法を教えていただけないでしょうか イメージオブジェクトが5件あり、Shape図形が1,3,5番目に存在した場合 先頭のイメージオブジェクトから詰めて表示したいのですが、方法が分かりません。 どうぞ宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

大分つぎはぎですが,こんな感じで。 UserForm1にImage1からImage5とCommandButton1を配置。 Image1,2,3,4,5には,事前に画像を表示したりしなかったりしてある。 Private Sub CommandButton1_Click()  Dim i, n  Dim a()  Dim res  On Error GoTo img_has_not_pict  For i = 1 To 5   res = Me.Controls("Image" & i).Picture   n = n + 1   ReDim Preserve a(n)   a(n) = i ret:  Next i  On Error GoTo 0  For i = 1 To UBound(a)   Me.Controls("Image" & i).Picture = Me.Controls("Image" & a(i)).Picture  Next i  n = i  For i = n To 5   Me.Controls("Image" & i).Picture = LoadPicture  Next i  Exit Sub img_has_not_pict:  Resume ret End Sub

Shiojiri9999
質問者

お礼

実装したいロジックでした。 とても助かりました ありがとうございました。

その他の回答 (1)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

こんな感じでどうでしょうか。 Dim ret As Variant On Error Resume Next ret = Me.Image1.Picture On Error GoTo 0 If ret = Empty Then MsgBox "空いてます!" End If