• ベストアンサー

エクセルで行の高さの変更マクロの作成

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

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.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

hijtxa
質問者

お礼

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

その他の回答 (3)

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.3

Rows(13).RowHeight = 8.0 で高さを8.0ピクセルに出来ます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

土日の行の高さを固定値で設定するマクロ(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

hijtxa
質問者

お礼

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

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

曜日がどのように表示してあるのかわかりませんでしたので、一応、"土"、"土曜"、"土曜日"に対応させました。 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

hijtxa
質問者

お礼

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

関連するQ&A