
エクセル2003を使用してます。
B2のセルに下記のような特定の文字が入力された場合、自動的にシート見出しの色を変えるようにしたいです。
(例)
"(1)" が入力された場合、赤
"(2)" が入力された場合、青
"(3)" が入力された場合、黄
最大で(10)までです。
といった具合です。
VBAを使うことになるのでしょうか?
VBAだとしたら、色のコードみたいなものは、下記ページの1、53、52、といった数字がそれに当たるのでしょうか?
http://www.relief.jp/itnote/xls_colorindex.php
恐れ入りますが、宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
シート名のところで右クリック → コードの表示を選択 → VBE画面が出てきますので下記のコードを貼り付けて下さい。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub
If Target = "" Then ActiveSheet.Tab.ColorIndex = xlNone
If Target = "(1)" Then ActiveSheet.Tab.ColorIndex = 35
If Target = "(2)" Then ActiveSheet.Tab.ColorIndex = 36
If Target = "(3)" Then ActiveSheet.Tab.ColorIndex = 37
If Target = "(4)" Then ActiveSheet.Tab.ColorIndex = 38
If Target = "(5)" Then ActiveSheet.Tab.ColorIndex = 39
If Target = "(6)" Then ActiveSheet.Tab.ColorIndex = 40
If Target = "(7)" Then ActiveSheet.Tab.ColorIndex = 41
If Target = "(8)" Then ActiveSheet.Tab.ColorIndex = 42
If Target = "(9)" Then ActiveSheet.Tab.ColorIndex = 43
If Target = "(10)" Then ActiveSheet.Tab.ColorIndex = 44
End Sub
B2が空白の時は色をつけないようにしています。
色の番号は好みの色に修正してください。
B2に入力すると見出しの色が変わります。
(1)~(10)は丸の中に数字に修正してください。
>色のコードみたいなものは、下記ページの1、53、52、といった数字がそれに当たるのでしょうか?
その通りです。
ご回答いただきまして誠にありがとうございます。
私の質問文が言葉足らずだったのですが、
全てのシートに適用したかったので、
その点も考慮いただきほんとにありがとうございます。
とても助かりました。
ありがとうございます!
No.5
- 回答日時:
ANo.3です。
補足です。
ブック内の全てのシートを対象としたい場合は
VBE画面が出てきた時に左上の方にThisWorkbook表示されている所をダブルクリックして貼り付けて
Private Sub Worksheet_Change(ByVal Target As Range)を
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)に修正して下さい。
No.4
- 回答日時:
>VBAはご教示くださいました一文だけでよろしかったでしょうか?
⇒マクロ(VBA)をやるなら十分に学習が必要です。
自動にということなのでイベントプロシージャの高度なVBAになります。
(見よう見まねでコードを変更するとエクセルがフリーズする事もあり、要注意)
一例です。
シート1タブ上で右クリック→コードの表示→VBE画面にサンプルコードを貼り付けて
お試しください。(マクロ削除は貼り付けたコードを全削除してVBEを終了して下さい)
サンプルコード(注意:case文の(n)は書き換えが必要です)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
Select Case Target.Value
Case "(1)": c = 3
Case "(2)": c = 5
Case "(3)": c = 6
Case Else: c = xlNone
End Select
Sheets("sheet1").Tab.ColorIndex = c
End If
End Sub
無知なものでほんとにお恥ずかしい限りです。
ヘタするとフリーズすることもあるのですね。
ご注意いただきましてありがとうございます。
今回はほんとに助かりました。
ありがとうございました!
No.2
- 回答日時:
今回の場合、・・・を入力したことをきっかけに動作するVBAにするので、
ワークシートのイベントプロシージャ を使います。
ワークシートのイベントプロシージャ の入力操作は、下記 URL の例を参考にして下さい。
http://excelvba.pc-users.net/fol3/3_6.html
この事例では、ダブルクリック を契機にしているので、ドロップダウンリストより、
イベントプロシージャを選択する時に、BeforeDoubleClick を選んでいますが、
今回は、セルのに入力された(セルが変更された)ことを契機にするので、
選択するイベントプロシージャは、 Change です。
Dim s
If Range("B2") = "[1]" Then
For Each s In ActiveWindow.SelectedSheets
s.Tab.ColorIndex = 1
Next s
ElseIf Range("B2") = "[2]" Then
For Each s In ActiveWindow.SelectedSheets
s.Tab.ColorIndex = 2
Next s
ElseIf Range("B2") = "[3]" Then
For Each s In ActiveWindow.SelectedSheets
s.Tab.ColorIndex = 3
Next s
ElseIf Range("B2") = "[4]" Then
For Each s In ActiveWindow.SelectedSheets
s.Tab.ColorIndex = 4
Next s
End If
入力するVBAの一例です。
※ (1) を入力すると -1 と判定されるので、 今回は、[1] にしてあります。
参考URL:http://excelvba.pc-users.net/fol3/3_6.html
ご回答いただきまして誠にありがとうございます。
うまく出来ました!ありがとうございました。
私の質問文が言葉足らずだったのですが、
全てのシートに適用したかったので、
ANo.3、5様の方法を使わせていただきました。
イメージ通りの形が出来てほんとに良かったです。
ありがとうございました!
No.1
- 回答日時:
>VBAを使うことになるのでしょうか?
⇒ご認識の通りです。
>色のコードみたいなものは、
⇒ご認識の通りです。
仮にSheet1タブを赤に変更する場合のコードです。
Worksheets("Sheet1").Tab.ColorIndex = 3
ご回答いただきまして誠にありがとうございます。
1つ訂正させていただきたいのですが、
質問文の中に、(1)、(2)、(3)とありますが、
本来は、まるいち、まるに、まるさん、(丸印の中に数字)です。
自動で変換されてしまったようです。
失礼致しました。
VBAはご教示くださいました一文だけでよろしかったでしょうか?
これだけだと、どの文字に対してどの色という指定が無いように思いますが?
VBAは未経験なもので、すみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
シート見出しの色を自動的に変更させたい
Excel(エクセル)
-
【 Excel】シートの見出しに自動で色を付けるには?
Excel(エクセル)
-
あるセルに文字が入力されるとシート見出しの色を自動で変更したい
その他(Microsoft Office)
-
-
4
セルの値によって、シート見出しの色を変更したい
Visual Basic(VBA)
-
5
VBAで条件によってシート見出しの色を変更したい
Excel(エクセル)
-
6
[EXCELマクロ] シートタブに自動で色をつけるには?
Excel(エクセル)
-
7
EXCEL関数(土日祝日自動色分け)
Excel(エクセル)
-
8
VBAで特定文字列がある場合にシート見出しの色を変更したい。
その他(プログラミング・Web制作)
-
9
エクセル:シート名を手入力でなく、セル「A1」の文字を出したい。
Excel(エクセル)
-
10
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ画像あり】❶1つの条件...
-
【マクロ】既存ファイルの名前...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ】【画像あり】ファイ...
-
Dir関数のDo Whileステートメン...
-
5単位で繰り上げしたい
-
【マクロ】【画像あり】4つの...
-
【画像あり】オートフィルター...
-
Excelで4択問題を作成したい
-
【マクロ】【画像あり】4つの...
-
エクセルのVBAで集計をしたい
-
エクセルの複雑なシフト表から...
-
【マクロ】数式を入力したい。...
-
【マクロ】元データと同じお客...
-
【マクロ】左のブックと右のブ...
-
【マクロ】実行時エラー '424':...
-
Office2021のエクセルで米国株...
-
エクセルのリストについて
-
【マクロ】【相談】Excelブック...
-
セルにぴったし写真を挿入
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報