- ベストアンサー
[エクセル2003] VBA シートの表示・非表示
シート1にチェックボックス その他シート名=1月~12月 とあり、チェックボックスにチェックを入れると今月の月のみのシートを表示させる方法(シート1はそのまま)。またチェックが外れると全月シート表示に切り替わる(シートの位置は変わらず)。 といった感じのことをやりたいのですが、書式のシート表示の設定は調べてわかったのですが、チェックボックスで切り替えがしたので分かる方よろしくお願いします。
- みんなの回答 (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
その他の回答 (2)
- pkh4989
- ベストアンサー率62% (162/260)
こんばんは。 具体的に書くと以下のようになります。 <フォームのチェックボックスの場合です> 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
お礼
ご返答有難うございました。 いろいろ分からない単語がありますので、勉強になります。
- Nayuta_X
- ベストアンサー率46% (240/511)
例: 下記を参考にしてください。 Sheets("1月").Visible = xlSheetHidden 'シートを隠す Sheets("1月").Visible = xlSheetVisible 'シートを表示する
お礼
早速のご返答有難うございました。 参考にさせていただきます。
お礼
ご回答有難うございます。 お蔭様でうまく動作できるようになりました。 有難うございました!