
No.3ベストアンサー
- 回答日時:
こんにちは!
>シートが31枚あり、シート名がそれぞれ1日~31日となっており・・・
月が替わるたびに同じシートを使いまわすのですかね?
大の月・小の月の兼ね合いがあると思いますので
とりあえず、月末までのシートの処理としてみました。(小の月の場合は30番目、2月は28または29番目まで)
マクロを実行した日の「月」に準じています。
標準モジュールにしてください。
Sub Sample1()
Dim k As Long, myDay As Date, myWk
For k = 1 To Day(WorksheetFunction.EoMonth(Date, 0))
With Worksheets(k)
myDay = DateSerial(Year(Date), Month(Date), Val(Replace(.Name, "日", "")))
myWk = WorksheetFunction.Weekday(myDay)
Select Case myWk
Case 1
.Tab.ColorIndex = 3
Case 7
.Tab.ColorIndex = 5
Case Else
.Tab.ColorIndex = xlNone
End Select
End With
Next k
End Sub
※ シート名は必ず「1日・2日・・・31日」となっているという前提です。
>祝日なら赤。
に関しては祝日データがどこにあるか?によってコードが変わってきますので、
今回は考慮していません。m(_ _)m
No.2
- 回答日時:
マクロ使わなくても条件付き書式でセルを修飾すれば良いだけですよ。
シート名もCELL関数を使って取得することができます。(FIND関数やMID関数などを使って切り出す必要がありますけどね)
あとは得られたシート名を日付に直してWEEKDAY関数に入れれば曜日を得る事ができます。
その結果を土曜日の場合の値と比較することで、その日付が土曜日かを判断できます。
一度CELL関数などの使い方を調べてみましょう。
・・・余談・・・
代わりに作ってもらう事は疑問の解決ではなく先送りにしかなりません。
自作するうえで何が分からないのかを確認し、理解するための質問をするようにしましょう。
この質問に対する回答は、
「マクロを使わなくても、条件付き書式でできますよ」
ということです。
それを実現するためのヒントも書きましたので、あとは自身の努力を見せる番です。
「CELL関数の2番目の項目は何を指定すればいいのか分からない」
など、具体的な補足なら時間が空いてもお答えしますよ。
(返答にはちょっと時間がかかると思いますけどね)
No.1
- 回答日時:
こんにちは
>シート名がそれぞれ1日~31日となっており
どのようなマクロにしたいのかよくわかりませんが、自動で曜日を判定させたいのなら、日付だけの情報では無理ですね。
>どのようにマクロを組めばいいかご教示頂ければ幸いです
以下のような処理を、各シートでループすれば可能と思います
1)シートの表す日付を特定(上記のように方法は不明)
2)年月日から曜日を特定する
MsgBox Weekday(dt) で可能です(dt:Date型の日付)
(1~7の値をとり、日曜~土曜を意味します)
3)曜日に応じて、見出しに色を付ける
※ 3)の方法は、マクロの記録などで試してみればわかると思います。
※ 確実に1日~順に並んでいる保証があれば、『最初のシートの曜日をチェックして、対象日(=シート)を計算で求め、7シートおきにまとめて色付けする』といった方法も考えられそう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
シート見出しの色を自動的に変更させたい
Excel(エクセル)
-
あるセルに文字が入力されるとシート見出しの色を自動で変更したい
その他(Microsoft Office)
-
シート見出しの色を自動で変えるには
Excel(エクセル)
-
-
4
[EXCELマクロ] シートタブに自動で色をつけるには?
Excel(エクセル)
-
5
セルの値によって、シート見出しの色を変更したい
Visual Basic(VBA)
-
6
VBAで条件によってシート見出しの色を変更したい
Excel(エクセル)
-
7
EXCEL関数(土日祝日自動色分け)
Excel(エクセル)
-
8
VBAで特定文字列がある場合にシート見出しの色を変更したい。
その他(プログラミング・Web制作)
-
9
EXCELで複数のシートを一度に「シートの保護」することはできますか?
Excel(エクセル)
-
10
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
11
エクセルで画面上では色がつくが印刷の時は色がつかない方法
Excel(エクセル)
-
12
エクセル:シート名を手入力でなく、セル「A1」の文字を出したい。
Excel(エクセル)
-
13
ファイルのオープン時に今日の日付にジャンプ
Excel(エクセル)
-
14
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
15
(Excel VBA)シートコピー時マクロはコピーしたくない
Excel(エクセル)
-
16
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
17
IF関数で、時間を条件にしたい場合の式について
Access(アクセス)
-
18
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
19
エクセルファイルを開く時、常に同じシートから開くようにするには?
Windows Vista・XP
-
20
マクロを複数シートに実行するには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
エクセルのVBAで集計をしたい
-
【マクロ】【相談】Excelブック...
-
【 Excel】シートの見出しに自...
-
VBAで条件によってシート見出し...
-
シートを保護した時でも並べ替...
-
エクセルVBAでcmbBoxのプロパテ...
-
マクロを特定の複数シートで実...
-
Excelのマクロの呼び出し元を知...
-
EXCELでワークシートを開いたら...
-
マクロを複数シートに実行する...
-
エクセルでセル(列)を飛ばし...
-
エクセルの複数のワークシート...
-
VBA シート名を先月の名前に...
-
メッセージボックスでシート名...
-
Excelでたくさんのシートで設定...
-
EXCELのエラー
-
VBA ワークシートオブジェクト...
-
ExcelのSheetに作られたMacro1...
-
エクセル・複数のシートを一度...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
エクセルのVBAで集計をしたい
-
【マクロ】【相談】Excelブック...
-
エクセルを開いたとき常に同じ...
-
【 Excel】シートの見出しに自...
-
マクロを複数シートに実行する...
-
Excelのマクロの呼び出し元を知...
-
EXCELでマクロを使わずに図形の...
-
エクセルで複数のSheetを一括フ...
-
EXCELでワークシートを開いたら...
-
VBAで条件によってシート見出し...
-
VBA シート名を先月の名前に...
-
EXCELのエラー
-
エクセルでシートの並び替えで...
-
EXCELの起動時に常に同じ...
-
マクロを特定の複数シートで実...
-
複数シートの保護・解除
-
マクロ 各シートの決められた位...
-
エクセルのチェックボックス
-
Excel:複数シートから条件に合...
おすすめ情報