2017-01-31 17 views
0

はここでインタラクティブカートのための私のコードですが、私はあなたがfor each Shapeループを使用することをVBAエラー13実行時

エラー13実行時

Sub Freeform124_Click() 

    Dim NomShape As String 

    NomShape = Application.Caller 
    For Each Shape In ActiveSheet.Shapes 
     form.Fill.ForeColor.RGB = RGB(0, 50, 0) 
    Next Shape 

End Sub 
+1

'Application.Caller'は文字列を返す必要はありません.Dim NomShape As Variantを試してください。詳細については、https://msdn.microsoft.com/en-en/library/office/ff193687(v=office.15).aspxを参照してください – R3uK

+0

グラフの色を変更しようとしていますか?形?あなたは正確に何を達成しようとしていますか? –

答えて

0
あなたのコードに問題がある

を持っていますform.fill.forecolorと書きます。おそらく、 プラス文字列に解析されたapplication.caller

オブジェクトからマクロをクリック可能にすると、すべてのオブジェクトの色を変更する良い方法です。

Option Explicit 

Sub Rechteck1_Klicken() 

    Dim oCaller   As Object 
    Dim shShape   As Shape 

    Set oCaller = ActiveSheet.Shapes(Application.Caller) 
    oCaller.Fill.ForeColor.RGB = RGB(100, 250, 250) 

    For Each shShape In ActiveSheet.Shapes 
     If shShape.Name <> oCaller.Name Then 
      shShape.Fill.ForeColor.RGB = RGB(110, 50, 0) 
     End If 
    Next shShape 

End Sub 
関連する問題