エクセル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
【VBA】色のついたシート名を取得
Visual Basic(VBA)
-
9
Excelの入力規則で2列表示したい
Excel(エクセル)
-
10
エクセル:シート名を手入力でなく、セル「A1」の文字を出したい。
Excel(エクセル)
-
11
Excelで年月日データから下二桁だけを取り出したい。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データチェックを行うエクセル...
-
再質問です。マクロの修正箇所...
-
エクセルの数式バーのフォント...
-
エクセルで「ページレイアウト...
-
2列に入っているデータを1列...
-
【ExcelVBA】名前を付けて保存→...
-
エクセルでファイルの最終更新...
-
Excel VBAで全ての矢印を赤色に...
-
数字入力後他の文字等が表示さ...
-
【ExcelVBA】ダブルクォーテー...
-
エクセル関数を使って
-
エクセルで 自動的に◯や数字を...
-
Excelについて
-
【Excel】別シートから条件に合...
-
【マクロ】VLOOKUPにて参照元に...
-
エクセルの問題です。絶対値の...
-
エクセルのセルに同じ大きさの...
-
エクセルをエクセレントに究める
-
Excel 小さくなったスクロール...
-
エクセルのツールバーから数値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報