- ベストアンサー
日報の休日ボタン(トグルボタン)を一度に解除するマクロは?
今、休日設定の違う従業員が使用する日報にて、 日付部分をクリック(凹ませる)するとその列の色が変わり、 再度クリック(凸らせる)して戻す、トグルボタンを E2~AI2まで設置しています。 そのボタンを別のボタンで一括して 戻す(凸らせる)事は出来ないでしょうか? 今、トグルボタンに下記の式を入れています。 ↓それぞれ1~31までのButton番号 Private Sub ToggleButton1_Click() If ToggleButton1.Value Then Range("E2").Value = 1 ←それぞれE2からAI2までを表記 Else Range("E2").Value = "" ←同様にE2からAI2まで End If End Sub 上記のボタン番号、セル番号を変えて31個分の式をそれぞれの ボタンに貼り付けています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
これでいかがでしょうか? Private Sub CommandButton1_Click() Dim i As Integer For i = 1 To 31 OLEObjects("ToggleButton" & i).Object.Value = False Next End Sub
その他の回答 (3)
- hana-hana3
- ベストアンサー率31% (4940/15541)
>そして一番上の行が黄色くなります。 って、「Private Sub CommandButton1_Click()」でしょうか? 単にボタンのイベントに先のコードを記入しただけですよね?
お礼
単にコードをコピペしただけです; それだけでは駄目だったのですね;; すいませんでした。 これに懲りずに また、何かありましたら宜しくお願い致します。
- normo
- ベストアンサー率54% (6/11)
Range("E2:AI2").ClearContents でE2~AI2までクリアされます。
お礼
ありがとうございます。 一応消えるのですが、トグルボタンは上がらない(凸)のですね; しかし、参考になりました。ありがとうございます。
- hana-hana3
- ベストアンサー率31% (4940/15541)
下記で可能でしょう。 For i = 1 To 31 Controls("ToggleButton" & i).Value = False Next Range("E2:AI2").ClearContents
お礼
上記式を使って 下記のような式を入れたのですが、 subまたはFunctionが定義されていません と出ます。 そして一番上の行が黄色くなります。 何がおかしいのでしょうか? Private Sub CommandButton1_Click() For i = 1 To 31 Controls("ToggleButton" & i).Value = False Next Range("E2:AI2").ClearContents End Sub
お礼
上記式でうまく行きました。ありがとうございました。 また、何かありましたら宜しくお願い致します。