• ベストアンサー

該当月のみにシートタブに自動で色

いつもお世話になります。 Win7 Excell2010 てす。 記入 顧客名簿 1 ~ 12  とシートがあります。 1) 記入、顧客名簿 のシートには色付けしています。 2) 1 ~ 12 は半角文字です。 (1月~12月を意味しています) 例えば、 A1 のセルに 8 と 今月は 8月ですから 8のシートタブに自動的色付けさせたいのですが可能でしょうか。 いろんなサイトで検索しましたが見つけることができませんてした。 VBAの記述と思いますがもし可能ならご指導いただけませんか。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

例として。 Dim sh As Worksheet     For Each sh In Worksheets         If sh.Name = Month(Now) Then             sh.Tab.Color = 255    ' 赤         Else             sh.Tab.ColorIndex = xlNone         End If     Next これを「開く時」イベントに書いておくと、 おそらくお望みの ・該当月の見出しは「赤」 ・それ以外の見出しは「無色」 に出来ます。 VBAの使い方は別途お調べくださいませ。

dorasuke
質問者

お礼

ありがとうございました。 やっとたどり着きました。 「ThisWorkbook 右クリック コードの表示」 で WorkbooksコレクションのOpenメソッドを使い成功しました。 参考に、 Private Sub Workbook_Open() Dim sh As Worksheet For Each sh In Worksheets If sh.Name = Month(Now) Then sh.Tab.Color = 255 ' 赤 Else sh.Tab.ColorIndex = xlNone End If Next End Sub ただお願いがあるのですが 1 ~ 12 のシートにだけ適用し それ以外は適用外とすることはダメでしょうか。 もしもし可能ならば再度ご指導いただませんか。 宜しく御願いします。

dorasuke
質問者

補足

良く分からないままに、 取り敢えず 8のシートタブ を右クリック コードの表示 に下記を記述し試めしました。 期待しましましたが反応しません。 何がいけないのか再度ご指導いただけませんか。 Private Sub Worksheet_Change(ByVal Target As Range) Dim sh As Worksheet For Each sh In Worksheets If sh.Name = Month(Now) Then sh.Tab.Color = 255 ' 赤 Else sh.Tab.ColorIndex = xlNone End If Next End Sub

その他の回答 (1)

回答No.2

オブジェクトは VBEのプロジェクトで ThisWorkbookを選び イベントはOPENを選択しましょう Private Sub Workbook_Open() Dim WS As Worksheet Dim Stat As Long Stat = Month(Now()) For Each WS In Worksheets WS.ColorIndex = xlAutomatic Next With ActiveWorkbook.Sheets(Stat).Tab .Color = vbYellow End With End Sub

dorasuke
質問者

お礼

解決しましたのでありがとうございます。 何度すみません。 No1さんのマクロで、 下記を削除しましたら望み通りのものができました。 有難うございました。 Else sh.Tab.ColorIndex = xlNone

dorasuke
質問者

補足

ご指導いただきありがとうございます。 早速試させていただきました。 記述し一旦閉じ再度開きましたところ 下記のような警告が出ました。 コンパイル エラー: メソッドまたはデータ メンバーが見つかりません。 .ColorIndex =  (※反転しています) 再度ご指導いただけるると幸甚の至りです。

関連するQ&A