『フォームのリセット』(とっちゃん)  表を月の1日から月末まで作りました。それぞれの日のセルに「表示」「ツールバー」「フォーム」から「チェックを入れるアイコン」をそれぞれ与えました。各日によって「On」にする日と「off」にする日があります。したがって、その月は各種入り交じった状態ですが、次の月にはすべて[off」の状態にしたいと思います。どのようなすればよいのか教えていただけませんか? ---- どの時点で「次の月」を判断するのかが不明ですが・・・。 フォームのチェックボックスを一括でオフにするのなら、 Worksheets("Sheet1").CheckBoxes.Value = xlOff こんな感じで出来ます。 (MARBIN) ---- 蛇足ながら、当月に存在しない日付のチェックボックスを非表示にする マクロを考えてみました。 A1からA31までチェックボックスがセルに収まるように設置されている との前提です。 Dim MyChk As Object Dim matu As Date matu = DateAdd("d", -1, DateSerial(Year(Date), Month(Date) + 1, 1)) For Each MyChk In ActiveSheet.CheckBoxes If MyChk.TopLeftCell.Row > Day(matu) Then MyChk.Visible = False Next (MARBIN) ---- >A1からA31までチェックボックスがセルに収まるように設置されている >との前提です。 A列限定ではありませんでした。 列はどの列でもかまわないですが、 行は1行目から31行目までです。 行がずれている場合は >MyChk.TopLeftCell.Row の部分を改造する必要があります。 (MARBIN) ---- MARBIN様最初のお答えで私自身理解できていませんが、標準モジュールに貼り付けましたところ、思っていたことができました。本当に有難うございmすた。<とっちゃん> ---- ちょっと修正しました。 ない日付のチェックボックスを非表示にするだけでなく、 先月ない日付として非表示にして、今月は存在する日付の チェックボックスを再度表示するようにしました。 Dim MyChk As Object Dim matu As Date matu = DateAdd("d", -1, DateSerial(Year(Date), Month(Date) + 1, 1)) For Each MyChk In ActiveSheet.CheckBoxes If MyChk.TopLeftCell.Row > Day(matu) Then MyChk.Visible = False Else MyChk.Visible = True End If Next (MARBIN) ---- チェックボックスが配置されている行番号ではなく、チェックボックスの名前で 判定するサンプルです。 Dim MyChk As Object Dim matu As Date matu = DateAdd("d", -1, DateSerial(Year(Date), Month(Date) + 1, 1)) For Each MyChk In ActiveSheet.CheckBoxes If (Replace(MyChk.Name, "Check Box ", "")) * 1 > Day(matu) Then MyChk.Visible = False Else MyChk.Visible = True End If Next (MARBIN)