EXCEL VBA ワークシートの見出しの色を変更・ワークシートの表示・非表示の切り替え(Tab.ColorIndex・Visible)

 

EXCEL VBA ワークシートの見出しの色を変更・ワークシートの表示・非表示の切り替え(Tab.ColorIndex・Visible)

 

 

 ●はじめに
EXCELを使用していると複数のワークシートを利用します。このワークシートが複数ある場合は、シートの見出し色を設定する事で、分かり易くシートを区別する事ができます。EXCEL VBAで見出し色を設定する場合、Tab.ColorIndexを利用します。また、ワークシートには、ワークシートの表示・非表示を切り替える事もできます。他のユーザーからワークシートを隠す場合に利用する時は、VBAではVisibleを利用します。それでは、順番に説明いたします。

 

 

 ●書式の説明 【Tabプロパティ】・【Visibleプロパティ】
●ワークシートオブジェクト.Tab.ColorIndex = 設定値(インデックス番号:色を指定)
※ワークシートのシート見出しに色を指定します。

記述例: ActiveSheet.Tab.ColorIndex = 3【ColorIndex】

●ワークシートオブジェクト.Visiblbe = 既定値
※ワークシートの表示・非表示を切り替える。

設定値内容
xlSheetVisible 又は Trueシートを表示する
XlSheetHidden 又は Falseシートを非表示にする
xlSheetVeryHiddenシートを非表示にする。ユーザーの操作でシートを再表示する事は出来なくなります。xlSheetVisibleを設定するまで非表示を解除できません。

記述例: Sheets(1).Visible = false (非表示)
Sheets(1).Visible = True(表示)

 

 

ワークシート毎に指定した見出しに色を付ける

 

 

 ●プログラム説明 (サンプル①) Tab.ColorIndex

下記のサンプルプログラムは、ワークシート毎に指定した見出しにを付けるサンプルプログラムです。3つのワークシートに指定した見出しに色を付けます。

●ワークシート
ワークシート①・・・ワークシート名「Main」 1:黒 (見出し色)
ワークシート②・・・ワークシート名「個人情報」 3:赤(見出し色)
ワークシート③・・・ワークシート名「公開情報」 5:青(見出し色)
ワークシート④・・・ワークシート名「その他」 ※設定しない

 

 

 

 

●実行前~実行後 ※プログラム実行後、ワークシート毎に指定した見出しに色が付きました。
(画面クリックして拡大)

 

 

全てのワークシートに指定した色に見出し色をつける。

 

 

●プログラム説明  (サンプル②) Tab.ColorIndex

下記のサンプルプログラムは、全てのワークシートに指定した色に見出し色を付けるサンプルプログラムです。プログラム実行後、指定するワークシートの見出し色を聞いてきますので、入力した色番号(0~56)が全てのワークシートに同じ色が付きます。

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、設定するワークシート見出し色の色番号を設定します。その指定した色番号で、全てのワークシートの見出し色に設定されました。(今回は、3番(赤)を設定したので、全て見出し色が赤になりました。)
(画面クリックして拡大)

 

 

ワークシート名に応じて見出し色を付けます。(シート名ごとに色を分ける)

 

 

●プログラム説明  (サンプル③) Tab.ColorIndex

下記のサンプルプログラムは、ワークシート名に応じて見出し色を付けます。今回は、ワークシート名に「月分」が含まれている場合は、見出し色が「青」・ワークシート名に「合計」が含まれている場合は、見出し色を「赤」に全てのシートを対象に設定するサンプルプログラムです。

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、ワークシート名に応じて、シート名に「合計」が含まれる場合は、「赤」・シート名に「月分」が含まれる場合は、「青」に見出し色が設定されました。
(画面クリックして拡大)

 

 

 

指定したワークシート毎に表示・非表示を指定します。

 

 

 ●プログラム説明 (サンプル①) Visible

下記のサンプルプログラムは、指定するワークシート毎にシート表示の表示・非表示を指定するサンプルプログラムです。

●シートが3つあります。【下記の通りに設定します。】
①シート名「Main」・・表示
②シート名「個人情報」・・非表示
③シート名「公開情報」・・表示

 

 

 

●実行前~実行後 ※プログラム実行後、3つのシートが表示されている状態から、「個人情報」のシートのみ非表示に変更されました。※「False」に設定したため「非表示」
(画面クリックして拡大)

 

 

シートの中に「個人情報」のシート名が含まれている場合は、全て非表示にします。

 

●プログラム説明 (サンプル②) Visible

下記のサンプルプログラムは、シートの中に「個人情報」のシート名が含まれている場合は、全て非表示にします。

●各シート表示・非表示の方法をが下記の通りに設定します。
①シート名「Main」・・表示
②シート名「個人情報XXX」・・非表示

 

 

 ●実行前~実行後 ※プログラム実行、シートの中に「個人情報」の含まれているシート名のシートが非表示されました。
(画面クリックして拡大)

 

 

特定のシート名以外のシートは表示・非表示を繰り返します。

 

●プログラム説明 (サンプル③) Visible

下記のサンプルプログラムは、特定のシート名(Main)以外のシートは、表示・非表示を繰り返します。ここでは、シート名に「個人情報XXX」があるシートは、表示・非表示を繰り返します。

●特定のシート名⇒「Main」
●以外のシート名⇒「個人情報(XXX)」※個人情報のシート表示・非表示を繰り返します。

 

 

 

 ●実行前~実行後 ※プログラム実行後、実行するたびに、「個人情報XXX」のシート表示・非表示を繰り返します。ws.Visible = Not ws.Visible  を利用する事で「表示⇔非表示」を繰り返す条件になります。
(クリックして拡大)

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。