2016-06-22 14 views
0

Excelのコマンドボタンのキャプションをオンザフライで変更するには、Excel VBAを探しています。デフォルトのキャプションは「差分を表示」であり、フィルタが適用されるときにはすべて表示に変更する必要があります。Excelコマンドボタンのキャプションを変更するExcel VBA

これはこれまで私が行ってきたことです。

Sub ShowDifference() 
Dim cmdButton As CommandButton 

は「これは、サブの名前を破るここ

Set cmdButton = ActiveSheet.Shapes("cmdShowDif") 


If cmdButton.Caption = "Show Difference" Then 
    ActiveSheet.ListObjects("qryDifference").Range.AutoFilter Field:=4, _ 
    Criteria1:=Array("<>0.00"), Operator:=xlAnd 
    cmdButton.Caption = "Show All" 
Else 
    ActiveSheet.ListObjects("qryDifference").Range.AutoFilter Field:=4 
    cmdButton.Caption = "Show Difference" 
End If 

End Sub 

ブレイク。どうして?

エラー: enter image description here

+0

エラーは何ですか? –

+0

*サブの名前が壊れています* - 最初にコードをコンパイルしましたか?タイトルは世界のどのようなものですか? –

+0

タイトルを変更するのを忘れてしまいました。 エラーメッセージについては、添付イメージを参照してください。 –

答えて

1

に名前]ボックスに名前を変更する作業コードは次のとおりです。

Sub ShowDifference() 

Dim cmdButton As Button 

Set cmdButton = ActiveSheet.Buttons("cmdShowDif") 

If cmdButton.Caption = "Show Difference" Then 
    cmdButton.Caption = "Show All" 
Else 
    cmdButton.Caption = "Show Difference" 
End If 

End Sub 

また、次のコードを使用することもできます。

Sub ShowDifference() 

Dim cmdButton As Button 

For Each cmdButton In ActiveSheet.Buttons 
    If cmdButton.Name = "cmdShowDif" Then 
     If cmdButton.Caption = "Show Difference" Then 
      cmdButton.Caption = "Show All" 
     Else 
      cmdButton.Caption = "Show Difference" 
     End If 
    Else 
     Debug.Print cmdButton.Name & " is not the one... moving to next button..." 
    End If 
Next cmdButton 

End Sub 

質問がありましたら教えてください。

+0

ありがとうございました。 –

0

[開発]タブに移動して、デザインモードをクリックします。 CommandButtonを選択します。ボタンの名前は、数式バーの左側の名前ボックスに表示されます。

Set cmdButton = ActiveSheet.Shapes("cmdShowDif") 

Set cmdButton = ActiveSheet.OLEObjects("cmdShowDif").Object 

にこの行を変更しかし、それは代わりに cmdShowDifの正しい名前を使用します(またはここで cmdShowDif

+0

これはActiveXコントロールでのみ機能しますが、Karenが使用しているようですフォームコントロール。 – Ralph

+0

'CommandButton'データ型はActiveXで、' Shapes() 'アクセサはFormsでより一般的に使用されています。どこからコピーしたのか、どうしたのでしょうか? –

関連する問題