dポイントプレゼントキャンペーン実施中!

縦型カレンダーを横型にできません?

縦型カレンダーの土日祝へ背景色をつけるマクロを横型カレンダーへ変更したいのですができません?

教えていただけるかたからのアドバイスをお願いします。

縦型で利用している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

「縦型カレンダーを横型にできません? 縦型」の質問画像

A 回答 (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
    • good
    • 0
この回答へのお礼

cntcol2 = cntcol + 1の追記ですね。
試してみます、ありがとうございました。

お礼日時:2021/06/01 20:37

こんにちは



内容は見ていませんが、単純に「行」と「列」の制御を入れ替えれば実現できると思います。

ただし、セルの指定が Range("A1") 形式だと、単純入れ替えをしにくいので、まずは、 Cells(Row, Column) 形式にしておいた方がやりやすいと思います。
(内容を理解して、直接範囲を書き換えても良いですけれど‥)

Cells(Row, Column) 形式にできていれば、必要な出力部分に対して、Cells(Column, Row) のように入れ替えれば、そのまま出力の行と列が入れ替わることになります。
    • good
    • 0
この回答へのお礼

アドバイスいただいたCells(Row, Column) 形式で試してみます。
ありがとうございました。

お礼日時:2021/06/01 20:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!