電子書籍の厳選無料作品が豊富!

エクセルで各月の行事予定表を作成していますが、各月の初日を特定のセルに入力すると、自動的にその月の日にちと曜日が各セルの上段から下段に表示されるように作成しています。
例えば、セルA1に11/1と入力すると、セルA5からA36までに日付がB5からB36に曜日が表示されるようにし、セルC欄に行事内容を入力する行事予定表としています。
この場合、土曜日曜は休みなので行事が入らないため、その行(土曜日曜の行)の高さをボタンクリックで変更(希望の縮小高さに変更)できるマクロを教えてほしいのです。
また、これについては、他の表作成で、入力の無い行の行高縮小マクロにも利用可能ではと考えてもいます。
マクロの実行ボタンの作成は作成することができます。
ご教示をお願いいたします。

A 回答 (4件)

こんな感じでいかがでしょうか?



Sub sample1()
Dim rHeight As Single
Dim i As Integer

rHeight = InputBox("高さを指定してください。", "セルの高さ", 0)

For i = 5 To 36
If Weekday(Cells(i, 1), vbMonday) > 5 Then
Cells(i, 1).RowHeight = rHeight
Else
Cells(i, 1).RowHeight = ActiveSheet.StandardHeight
End If
Next
End Sub
    • good
    • 0
この回答へのお礼

出来ました。
ありがとう、ございました。
また、よろしくお願いいたします。

お礼日時:2007/11/16 14:20

Rows(13).RowHeight = 8.0



で高さを8.0ピクセルに出来ます。
    • good
    • 0

土日の行の高さを固定値で設定するマクロ(Macro1)と、5~36行目を自動調整するマクロ(Macro2)です。

ご参考まで

Sub Macro1()
Dim idx As Integer
For idx = 5 To 36
  If Weekday(Cells(idx, "A")) = vbSunday Or _
     Weekday(Cells(idx, "A")) = vbSaturday Then
    Rows(idx).RowHeight = 18
  End If
Next
End Sub

Sub Macro2()
  Rows("5:36").AutoFit
End Sub
    • good
    • 0
この回答へのお礼

出来ました。
ありがとう、ございました。
また、よろしくお願いいたします。

お礼日時:2007/11/16 14:21

曜日がどのように表示してあるのかわかりませんでしたので、一応、"土"、"土曜"、"土曜日"に対応させました。



Sub test01()
h = InputBox("土日の行の高さをご指定ください。")
If h = "False" Or h = "" Then
Exit Sub
End If
With ActiveSheet
For Each c In .Range("B6:B36")
If c.Value Like "土*" Or c.Value Like "日*" Then
c.EntireRow.RowHeight = h
End If
Next c
End With
End Sub
    • good
    • 0
この回答へのお礼

出来ました。
ありがとう、ございました。
また、よろしくお願いいたします。

お礼日時:2007/11/16 14:21

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