
縦型カレンダーを横型にできません?
縦型カレンダーの土日祝へ背景色をつけるマクロを横型カレンダーへ変更したいのですができません?
教えていただけるかたからのアドバイスをお願いします。
縦型で利用しているVBA
'-------------------------------------------------------------------------------------
'機能:カレンダーの土日祝日行に背景色をつける
'引数:カレンダーシートのオブジェクト変数
'返り値:なし
'--------------------------------------------------------------------------------------
Private Sub calendarSet(ByVal wsSchedule As Worksheet)
Dim cntRow As Long 'カレンダー行カウント用変数
With wsSchedule
For cntRow = 1 To CALENDAR_MAXROW
'土曜日を判定しその行を水色にする
'土曜日=vbSaturday
If Weekday(.Range("B" & cntlow)) = vbSaturday Then
.Range("B" & cntRow & ":I" & cntRow).Interior.ColorIndex = 8 '背景色に水色設定
End If
'日曜日と祝日を判定しその行をオレンジ色にする
日曜日=vbSunday 祝日:isholiday=true
If Weekday(.Range("B" & cntRow)) = vbSunday Or isHoliday(.Range("B" & cntRow)) = True Then
.Range("B" & cntRow & ":I" & cntRow).Interior.ColorIndex = 46 '背景色にオレンジ色設定
End If
Next cntRow
End With
End Sub

No.2ベストアンサー
- 回答日時:
Private Sub calendarSetを以下のように修正してください。
Private Sub calendarSet(ByVal wsSchedule As Worksheet)
Dim cntRow As Long 'カレンダー行カウント用変数
With wsSchedule
For cntcol = 1 To CALENDAR_MAXROW
cntcol2 = cntcol + 1
'土曜日を判定しその行を水色にする
'土曜日=vbSaturday
If Weekday(.Cells(2, cntcol2)) = vbSaturday Then
.Range(.Cells(2, cntcol2), .Cells(9, cntcol2)).Interior.ColorIndex = 8 '背景色に水色設定
End If
'日曜日と祝日を判定しその行をオレンジ色にする
'日曜日=vbSunday 祝日:isholiday=true
If Weekday(.Cells(2, cntcol2)) = vbSunday Or isHoliday(.Cells(2, cntcol2)) = True Then
.Range(.Cells(2, cntcol2), .Cells(9, cntcol2)).Interior.ColorIndex = 46 '背景色にオレンジ色設定
End If
Next cntcol
End With
End Sub
No.1
- 回答日時:
こんにちは
内容は見ていませんが、単純に「行」と「列」の制御を入れ替えれば実現できると思います。
ただし、セルの指定が Range("A1") 形式だと、単純入れ替えをしにくいので、まずは、 Cells(Row, Column) 形式にしておいた方がやりやすいと思います。
(内容を理解して、直接範囲を書き換えても良いですけれど‥)
Cells(Row, Column) 形式にできていれば、必要な出力部分に対して、Cells(Column, Row) のように入れ替えれば、そのまま出力の行と列が入れ替わることになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
Excel97 指定した行だけマク...
-
Excel 別ブックから該当データ...
-
Access2003レポート:最終ペー...
-
数値に見えるものはすべて数値...
-
Excelマクロの転記について
-
エクセルで空白行を削除する ...
-
エクセルのVBAで指定した行数の...
-
[EXCEL VBA]指定した文字と文字...
-
縦型カレンダーを横型にできま...
-
excel データを2行づつコピー
-
ExcelVBA特定の列にデータがあ...
-
エクセルで階層図を作る方法
-
【VBA】条件に一致しない行を削...
-
EXCEL マクロで下から10行目ま...
-
Excelで、マウスで範囲を選択し...
-
Excel VBAでオートフィルタで抽...
-
エクセルVBAで3つ以上の複...
-
VBAでの重複データに色付け
-
エクセルマクロでグループごと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
Excel VBAでオートフィルタで抽...
-
数値に見えるものはすべて数値...
-
VB.net
-
列から特定の文字列検索→該当以...
-
エクセルで空白行を削除する ...
-
Excel マクロ 検索結果を別シ...
-
エクセルのデータがない行には...
-
【マクロ】A列最終行までを、カ...
-
【VBA】条件に一致しない行を削...
-
各個体に対する平均値の自動計...
-
エクセルのVBAで指定した行数の...
-
EXCEL VBAでA列にある空白行よ...
-
VBAでの重複データに色付け
-
空白を複数行一気に挿入するには?
-
エクセルで階層図を作る方法
-
vbaエクセルマクロについて she...
-
【至急】Excel 同一人物の情報...
-
Excel97 指定した行だけマク...
おすすめ情報