エクセル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
VBAで条件によってシート見出しの色を変更したい
Excel(エクセル)
-
5
セルの値によって、シート見出しの色を変更したい
Visual Basic(VBA)
-
6
[EXCELマクロ] シートタブに自動で色をつけるには?
Excel(エクセル)
-
7
EXCEL関数(土日祝日自動色分け)
Excel(エクセル)
-
8
エクセル:シート名を手入力でなく、セル「A1」の文字を出したい。
Excel(エクセル)
-
9
【VBA】色のついたシート名を取得
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで表
-
【マクロ】for next構文について
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
PDFの請求明細をエクセルにしたい
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
エクセルの関数について教えて...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシート、Excelでの数...
-
スプレッドシートで使う数式を...
-
Excelで50個のセルに同じ文字を...
-
[オートフィルタ]で抽出された...
-
エクセルの問題です。絶対値の...
-
エクセル関数を教えてください
-
各ページの1番上の表示について
-
Microsoft Officeの中古は信用...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
Excel 2019 は、SPILL機能があ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報