彼らがExcel 2013でクリックされた後、私はボタンを無効にしたい無効にすべてのボタン
私のコードは正常に動作しますが、ただ一つの特定のボタンの。
シート内のすべてのボタンに同じロジックを適用するにはどうすればよいですか?
ActiveSheet.Shapes("Button 1").OnAction = Empty
ActiveSheet.Shapes("Button 1").DrawingObject.Font.ColorIndex = 16
彼らがExcel 2013でクリックされた後、私はボタンを無効にしたい無効にすべてのボタン
私のコードは正常に動作しますが、ただ一つの特定のボタンの。
シート内のすべてのボタンに同じロジックを適用するにはどうすればよいですか?
ActiveSheet.Shapes("Button 1").OnAction = Empty
ActiveSheet.Shapes("Button 1").DrawingObject.Font.ColorIndex = 16
私は、これはあなたが探しているものですよね。
Sub Answer()
dim sh as shape
For Each Sh In ActiveSheet.Shapes
Sh.OnAction = Empty
Sh.DrawingObject.Font.ColorIndex = 16
Next
End Sub
ありがとうございました! – user3434521
それはあなたがシート上のすべてのコントロールを「無効」にButton1を押すか、またはかどうかかどうか、あなたの質問から明らかではありません各ボタンを無効にします。
Button1のは、すべてのコントロール
Sub Button1_Click
Dim shp As Shape
For Each shp In Sheet1.Shapes
With shp
If .Type = msoFormControl Then
.OnAction = ""
.DrawingObject.Font.ColorIndex = 16
End If
End With
Next shp
End Sub
を無効に各ボタンには、それ自体が無効になり これは(ボタンを含むすべてのフォームコントロールを非表示にする...
Sub Button1_Click()
DisableButton Sheet1, "Button 1"
End Sub
Sub Button2_Click()
DisableButton Sheet1, "Button 2"
End Sub
Sub DisableButton(hostSheet As Worksheet, shapeName As String)
Dim shp As Shape
On Error Resume Next
Set shp = hostSheet.Shapes(shapeName)
On Error GoTo 0
If Not shp Is Nothing Then
With shp
If .Type = msoFormControl Then
.OnAction = ""
.DrawingObject.Font.ColorIndex = 16
End If
End With
End If
End Sub
ありがとうたくさんの男!私の不明な質問を申し訳ありません。私はたくさんのボタンを持っていて、各ボタン自体を無効にしたいのですが、 彼の名前がbutton1、button2なのかどうかは関係ありません。 – user3434521
を共通のボタンディセイブラヘルパープロシージャを使用します)をワークシートに追加します。
Dim ws_export As Worksheet
Dim shp_hide As Shape
For Each shp_hide In ws_export.Shapes
If shp_hide.Type = msoFormControl Then shp_hide.Visible = FALSE
Next shp_hide
Googleはシート上のすべてのコントロールをループします。あなたが実際に望んでいるもので質問を言い換えると、必要なものをGoogleに洞察することができます。あなたは、どのようにシート上のコントロールをループするかどうかを尋ねています。ボタンのクリックを無効にするのではなく、何らかの努力も必要です。 –