
エクセル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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) マクロ、条件付き書式のfont.color 1 2023/03/28 01:10
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Excel(エクセル) エクセルで隣(右or左)のセルと同じ文字色にしたい 2 2022/12/13 11:33
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Excel(エクセル) Excel 記入欄に網掛けして、文字が入力されたら網掛けが消える設定 5 2023/02/05 11:00
このQ&Aを見た人はこんなQ&Aも見ています
-
シート見出しの色を自動的に変更させたい
Excel(エクセル)
-
あるセルに文字が入力されるとシート見出しの色を自動で変更したい
その他(Microsoft Office)
-
【 Excel】シートの見出しに自動で色を付けるには?
Excel(エクセル)
-
-
4
セルの値によって、シート見出しの色を変更したい
Visual Basic(VBA)
-
5
VBAで条件によってシート見出しの色を変更したい
Excel(エクセル)
-
6
[EXCELマクロ] シートタブに自動で色をつけるには?
Excel(エクセル)
-
7
EXCEL関数(土日祝日自動色分け)
Excel(エクセル)
-
8
VBAで特定文字列がある場合にシート見出しの色を変更したい。
その他(プログラミング・Web制作)
-
9
あるセルに色を付けた時、別のセルにも同じ色が付く
Excel(エクセル)
-
10
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
11
エクセル:シート名を手入力でなく、セル「A1」の文字を出したい。
Excel(エクセル)
-
12
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
13
セルの書式設定のフォントやサイズの設定はできないの
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセル
-
エクセルのdatedif関数を使って...
-
【マクロ】アクティブセルの時...
-
【関数】同じ関数なのに、エラ...
-
エクセルの循環参照、?
-
【マクロ】WEBシステムから保存...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】3行に上から下に並...
-
【マクロ】A列にある、日付(本...
-
【条件付き書式】シートの中で...
-
【マクロ】EXCELで読込したCSV...
-
【エクセル】期限アラートについて
-
【マクロ】列を折りたたみ非表...
-
Excelファイルを開くと私だけVA...
-
Excelの新しい空白のブックを開...
-
マクロ・VBAで、当該ファイルの...
-
派遣会社とかハローワークとか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報