• ベストアンサー

[エクセル2003] VBA シートの表示・非表示

シート1にチェックボックス その他シート名=1月~12月 とあり、チェックボックスにチェックを入れると今月の月のみのシートを表示させる方法(シート1はそのまま)。またチェックが外れると全月シート表示に切り替わる(シートの位置は変わらず)。 といった感じのことをやりたいのですが、書式のシート表示の設定は調べてわかったのですが、チェックボックスで切り替えがしたので分かる方よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 では、こちらは、コントロールツール側で作っておきます。 Private Sub CheckBox1_Click()   Dim j As Integer   Dim i As Integer   j = Format(Date, "M")   Application.ScreenUpdating = False   For i = 1 To 12     If i <> j Then       Worksheets(CStr(i) & "月").Visible = Not CheckBox1.Value     End If   Next i   Application.ScreenUpdating = True End Sub

opoon
質問者

お礼

ご回答有難うございます。 お蔭様でうまく動作できるようになりました。 有難うございました!

その他の回答 (2)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

こんばんは。 具体的に書くと以下のようになります。 <フォームのチェックボックスの場合です> Sub チェック1_click()   Dim wMonth   As String   '   Application.ScreenUpdating = False   wMonth = Format(Now, "m")   If ActiveSheet.Shapes("チェック 1").ControlFormat.Value = 1 Then  '←チェックボックスの名前を変更して下さい     'チェックがONの時     For Each c In Worksheets       If c.Name <> wMonth & "月" And c.Name <> "Sheet1" Then         Sheets(c.Name).Visible = False       End If     Next   Else     'チェックがOFFの時     For Each c In Worksheets       Sheets(c.Name).Visible = True     Next   End If   Application.ScreenUpdating = True End Sub

opoon
質問者

お礼

ご返答有難うございました。 いろいろ分からない単語がありますので、勉強になります。

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

例: 下記を参考にしてください。 Sheets("1月").Visible = xlSheetHidden 'シートを隠す Sheets("1月").Visible = xlSheetVisible 'シートを表示する

opoon
質問者

お礼

早速のご返答有難うございました。 参考にさせていただきます。

関連するQ&A

専門家に質問してみよう