• ベストアンサー

シート見出しの色

全シートを対象として A1セルに整数が入力されたらそのシートのシート見出しが赤になり。A1セルに文字が入力されたらそのシートのシート見出しが黄色になるマクロの記述を教えてください。よろしくお願いします。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

マクロの記録をとればご質問の疑問点についてほぼ解決すると思いますよ。   Worksheets("Sheet1").Tab.ColorIndex = カラー番号 で、シートタブの色を変更できます。ただし、Excel 2002 以降の機能 なので、Excel のバージョンによる分岐処理を追加した方が良いかも しれません。 あとは、値の変更を VBA 実行のタイミングとするので、イベント処理と しますが、Change イベントが適当かと思います。ただし、全シート共通 処理にするのですから、ThisWorkbook モジュールでの SheetChange イベントにします。 > 整数が入力されたら... 下記では、「数値が入力されたら」としましたが、整数に限定するなら 例えば   If Int(Target.Value) = Target.Value Then などとして整数か否かを判定できますね。ワークシート上での数値は、 例え整数であっても Double 型または Currency 型になるので、VarType だけでは判定できません。ご参考までに。 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)   Dim lColor As Long   If Target.Address = "$A$1" Then     Select Case VarType(Target.Value)       Case vbString         lColor = 38 ' // ピンク       Case vbDouble To vbCurrency         lColor = 36 ' // 淡い黄色       Case Else         lColor = xlColorIndexNone     End Select     Sh.Tab.ColorIndex = lColor   End If End Sub

hoshi7777
質問者

お礼

詳しく説明までしていただき大変助かりました。 本当にありがとうごさいました。

関連するQ&A

  • 条件により、シート見出しの色を変更したい

    エクセル2007を使用してします。 ある報告書の全シートを対象として A1セルにkさんの名前が入力されたらそのシートのシート見出しが緑になり、A2セルにmさんの名前が入力されたらそのシートのシート見出しが青になり、なおかつ、kさんとmさん2人の名前が入力されたらそのシート見出しの色が黄色に自動でなるマクロの記述を教えてください。よろしくお願いします。

  • セルの値によって、シート見出しの色を変更したい

    エクセル2007を使用してします。以前に、 「ある報告書の全シートを対象として A1セルにkさんの名前が入力されたらそのシートのシート見出しが緑になり、A2セルにmさんの名前が入力されたらそのシートのシート見出しが青になり、なおかつ、kさんとmさん2人の名前が入力されたらそのシート見出しの色が黄色に自動でなるマクロの記述を教えてください」と質問し、 Private Sub Worksheet_Change(ByVal Target As Range) a1 = Range("a1").Value a2 = Range("a2").Value f = 0 If a1 = "k" Then f = f or 1 If a2 = "m" Then f = f or 2 c = Switch(f = 1, 4, f = 2, 5, f = 3, 6, True, xlNone) ActiveSheet.Tab.ColorIndex = c End Sub 上記のように御回答を頂きましたが、今後、入力する名前が変更する事を考えて、A1・A2セル共に、 何か文字が入力されたら(もしくは空白でなければ)と条件を変えたいと思い、色々試してみたのですが、 上手くいきませんでした。 何方か、条件に合うコードの記述を教えてください。宜しくお願いします。

  • シート見出しの色を自動で変えるには

    エクセル2003を使用してます。 B2のセルに下記のような特定の文字が入力された場合、自動的にシート見出しの色を変えるようにしたいです。 (例) "(1)" が入力された場合、赤 "(2)" が入力された場合、青 "(3)" が入力された場合、黄 最大で(10)までです。 といった具合です。 VBAを使うことになるのでしょうか? VBAだとしたら、色のコードみたいなものは、下記ページの1、53、52、といった数字がそれに当たるのでしょうか? http://www.relief.jp/itnote/xls_colorindex.php 恐れ入りますが、宜しくお願い致します。

  • エクセル VBA シート見出し色の参照について

    エクセルVBAでブック内のシート見出し色が赤のものだけ全てを 印刷し、なければ、”印刷対象はありません”とメッセージを1回だけ出すマクロを作成したいのですが、どのようなモジュールを作成すればいいかわかりません。 教えていただけますでしょうか。

  • 【Excel VBA】シート見出しの色を変更する

    Excel2003を使用しています。 シート数が10数枚のBookが複数あり、これらのBookで、シートのデータが変更されたら、シート見出しに色を付けるマクロを作りたく、とりあえず、マクロの記録をとってみました。 マクロの記録で、シート見出しの色を変更するコードや複数のシートを選択するコードはわかりましたが、実際にしたいことは、シート名が4桁の数値のシートにだけ、このマクロが実行されるようにしたいのです。このようなことは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? よろしくお願いします。

  • Excelのセルに入力した文字をシートの見出しの文字に変えるには。

    Excelのセルに入力した文字をシートの見出しの文字に変えるには。 A1に「品名」と入力したときに、シートの見出し文字が「sheet1」から「品名」に変わるようにしたいです。 よろしくお願いします。

  • エクセルの入力済みシートの見出しの色を自動で変更する

    現在、毎日の売上集計表を作っています。1~31枚のシートがあります。データーを入力したシートの見出しの色を自動で色を変えることは可能でしょうか?未入力シートと入力済みシートの区別を分かりやすくしたいのですが…(データーは毎日、営業終了後に入力します) 例えば、データー入力後に保存するとシートの見出しの色が変わるとか…これはマクロ等を使用しないと無理でしょうか、あまり詳しくないのですが。 バージョンはエクセル2003です。

  • ワークシートの見出しに色をつける

    エクセルのワークシートの下にあるSheet1って言う見出しの文字を黒から他の赤や青に変える方法を教えて下さい。 使っているのはエクセル2000です。

  • Excelのシート見出しについて

    Excel2010を使用しています。 シートを選んでいるときのみ、シートの見出しの色を変える事が出来ないでしょうか? 例えば10数枚シートを作成した場合に、今どのシートで作業をしているかとういのが、標準では作業中のシート見出しの色が白色で、その他は薄い灰色と少し分かりづらいためシートを選択している見出しのみが分かりやすい色に変わるように設定ができないのかと思いまして。例えば赤色など。 ちょっと分かりづらい説明ですがよろしくお願いします。

  • 同じシート見出し色のシートのみから数値を取得

    シートが100くらいある経理で使っているエクセルのワークブックで、今月アップデートしたシートを経理部従業員がそれぞれの色でシート見出しに色を付けます。アップデートしなかったシートの見出しは黒に塗ることしています。黒以外の各シートにある仕訳を集計しシステムに入力する前に確認したいのです。

専門家に質問してみよう