EXCEL VBA ワークシートの見出しの色を変更・ワークシートの表示・非表示の切り替え(Tab.ColorIndex・Visible)
EXCEL VBA ワークシートの見出しの色を変更・ワークシートの表示・非表示の切り替え(Tab.ColorIndex・Visible)
※ワークシートのシート見出しに色を指定します。 記述例: ActiveSheet.Tab.ColorIndex = 3【ColorIndex】
●ワークシートオブジェクト.Visiblbe = 既定値
※ワークシートの表示・非表示を切り替える。
設定値 | 内容 |
---|---|
xlSheetVisible 又は True | シートを表示する |
XlSheetHidden 又は False | シートを非表示にする |
xlSheetVeryHidden | シートを非表示にする。ユーザーの操作でシートを再表示する事は出来なくなります。xlSheetVisibleを設定するまで非表示を解除できません。 |
記述例: Sheets(1).Visible = false (非表示)
Sheets(1).Visible = True(表示)
ワークシート毎に指定した見出しに色を付ける
下記のサンプルプログラムは、ワークシート毎に指定した見出しに色を付けるサンプルプログラムです。3つのワークシートに指定した見出しに色を付けます。
●ワークシート
ワークシート①・・・ワークシート名「Main」 1:黒 (見出し色)
ワークシート②・・・ワークシート名「個人情報」 3:赤(見出し色)
ワークシート③・・・ワークシート名「公開情報」 5:青(見出し色)
ワークシート④・・・ワークシート名「その他」 ※設定しない
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub sheet_color01() 'ワークシート毎に指定した見出しに色を付ける Dim ws01, ws02, ws03 As Worksheet Set ws01 = Worksheets("Main") Set ws02 = Worksheets("個人情報") Set ws03 = Worksheets("公開情報") ws01.Tab.ColorIndex = 1 '1:黒 ws02.Tab.ColorIndex = 3 '3:赤 ws03.Tab.ColorIndex = 5 '5:青 End Sub |
(画面クリックして拡大)
全てのワークシートに指定した色に見出し色をつける。
下記のサンプルプログラムは、全てのワークシートに指定した色に見出し色を付けるサンプルプログラムです。プログラム実行後、指定するワークシートの見出し色を聞いてきますので、入力した色番号(0~56)が全てのワークシートに同じ色が付きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub sheet_color02() '全てのワークシートに指定した色に同じ見出し色をつける。 Dim ws As Worksheet Dim CC As Long CC = InputBox("ワークシートの見出し色 0~56を指定して下さい") For Each ws In Worksheets '全てのワークシート繰り返す ws.Tab.ColorIndex = CC 'ワークシートの見出しに指定した色を付けます。 Next ws End Sub |
(画面クリックして拡大)
ワークシート名に応じて見出し色を付けます。(シート名ごとに色を分ける)
下記のサンプルプログラムは、ワークシート名に応じて見出し色を付けます。今回は、ワークシート名に「月分」が含まれている場合は、見出し色が「青」・ワークシート名に「合計」が含まれている場合は、見出し色を「赤」に全てのシートを対象に設定するサンプルプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub sheet_color03() 'ワークシート名に応じて見出し色を付けます。 Dim ws As Worksheet For Each ws In Worksheets '全てのワークシートを繰り返します。 Select Case True Case ws.Name Like "*月分" ws.Tab.ColorIndex = 5 'ワークシート名に「月分」が含まれる場合は、【5:青】 Case ws.Name Like "*合計" ws.Tab.ColorIndex = 3 'ワークシート名に「合計」が含まれる場合は、【3:赤】 End Select Next ws End Sub |
(画面クリックして拡大)
指定したワークシート毎に表示・非表示を指定します。
下記のサンプルプログラムは、指定するワークシート毎にシート表示の表示・非表示を指定するサンプルプログラムです。
●シートが3つあります。【下記の通りに設定します。】
①シート名「Main」・・表示
②シート名「個人情報」・・非表示
③シート名「公開情報」・・表示
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub sheet_Visible01() '指定するワークシート毎に表示・非表示を指定します。 Dim ws01, ws02, ws03 As Worksheet Set ws01 = Worksheets("Main") Set ws02 = Worksheets("個人情報") Set ws03 = Worksheets("公開情報") ws01.Visible = True 'True :シート表示 ws02.Visible = False 'False:シート非表示 ws03.Visible = True 'True:シート表示 End Sub |
(画面クリックして拡大)
シートの中に「個人情報」のシート名が含まれている場合は、全て非表示にします。
下記のサンプルプログラムは、シートの中に「個人情報」のシート名が含まれている場合は、全て非表示にします。
●各シート表示・非表示の方法をが下記の通りに設定します。
①シート名「Main」・・表示
②シート名「個人情報XXX」・・非表示
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub sheet_Visible02() 'シートの中に「個人情報」のシート名が含まれている場合は、全て非表示にします。 Dim ws As Worksheet For Each ws In Worksheets '全てのワークシートを繰り返します。 If ws.Name Like "*個人情報*" Then ws.Visible = xlSheetHidden '個人情報のシートを非表示にします。(falseでも非表示) End If Next ws End Sub |
(画面クリックして拡大)
特定のシート名以外のシートは表示・非表示を繰り返します。
下記のサンプルプログラムは、特定のシート名(Main)以外のシートは、表示・非表示を繰り返します。ここでは、シート名に「個人情報XXX」があるシートは、表示・非表示を繰り返します。
●特定のシート名⇒「Main」
●以外のシート名⇒「個人情報(XXX)」※個人情報のシート表示・非表示を繰り返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub sheet_Visible03() '特定のシート名以外のシートを表示⇔非表示繰り返します。 Dim ws As Worksheet For Each ws In Worksheets '全てのワークシートを繰り返します。 If ws.Name <> "Main" Then ws.Visible = Not ws.Visible 'シート名「Main」以外のシート名以外のシートを表示⇔非表示を繰り返す。 End If Next ws End Sub |
(クリックして拡大)
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。