こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

シート1にチェックボックス

その他シート名=1月~12月

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

投稿日時 - 2007-06-10 17:18:33

QNo.3072966

暇なときに回答ください

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

こんばんは。

では、こちらは、コントロールツール側で作っておきます。

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

投稿日時 - 2007-06-10 22:11:57

お礼

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

投稿日時 - 2007-06-11 19:43:10

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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

投稿日時 - 2007-06-10 20:16:18

お礼

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

投稿日時 - 2007-06-11 19:39:48

ANo.1

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

投稿日時 - 2007-06-10 17:41:57

お礼

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

投稿日時 - 2007-06-11 19:34:47

あなたにオススメの質問