[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA 土日祝の列の文字大きさを変えたい』(yuka)
(sheet1)
A B 1 1/1 元日 2
(sheet2)
A B C 1 1/1 1/2 1/3 2 (月) (火) (水)
sheet1に縦並びで祝日マスタが入っています。
sheet2は、A1〜Z1に日付が入っているとして、土曜・日曜・祝日の場合は、3行目〜20行目の文字大きさを6にしたいです。
VBAでどのように行うのか、どなたかご教示頂けないでしょうか。
また、処理前にA1〜Z20の文字大きさリセット機能があれば助かります。
< 使用 Excel:Excel2003、使用 OS:WindowsXP >
条件付き書式でもいけると思いますが、VBAでないといけないのでしょうか? (カリーニン) 2014/07/02(水) 09:07
条件付き書式ではフォントサイズは変更できないようですね。 やはりVBAかな。 (カリーニン) 2014/07/02(水) 09:42
条件付書式にはフォントサイズはなかったかもですね。 文字のサイズだけですが、サンプルまで。
Sub Sample() Worksheets("Sheet2").Activate Range("A1:Z20").Font.Size = 11 '// Typo 修正済み For i = 1 To 26 If Weekday(Cells(1, i).Value) = vbSaturday _ Or Weekday(Cells(1, i).Value) = vbSunday _ Or Application.CountIf(Worksheets("Sheet1").Range("A:A"), Cells(1, i).Value) > 0 Then Range(Cells(3, i), Cells(20, i)).Font.Size = 6 End If Next End Sub (Mook) 2014/07/02(水) 09:47
途中で仕様を勘違いしたことに気付いたけど、参考までに。 366日版・・・ Sub 土日祝日() Dim 土日祝日 As Range Dim 祝日Tbl Dim i As Long, j As Long Sheets("sheet2").Rows("3:20").Font.Size = 11 With Sheets("Sheet1") 祝日Tbl = Application.Transpose(.Range("A1:A" & .Range("A" & .Cells.Rows.Count).End(xlUp).Row).Value) End With For i = 1 To UBound(祝日Tbl, 1) Set 土日祝日 = setRng(土日祝日, Cells(3, Evaluate("Match(""" & 祝日Tbl(i) & """,TEXT(Sheet2!A1:NA1,""YYYY/M/D""),0)")).Resize(18)) Next i j = Evaluate("Match(""日"",TEXT(Sheet2!A1:NA1,""aaa""),0)") For i = j To 366 Step 7 Set 土日祝日 = setRng(土日祝日, Cells(3, IIf(i = 1, 1, i - 1)).Resize(18, IIf(i = 1, 1, 2))) Next i 土日祝日.Font.Size = 6 End Sub Function setRng(ByVal a As Range, ByVal b As Range) As Range If a Is Nothing Then Set setRng = b Else Set setRng = Union(a, b) End If End Function Mookさんの揚げ足取りみたいですが、3行目のコード、RnageをRangeですかね? (稲葉) 2014/07/02(水) 10:37
Range ですね ^^;;;。 テストしたときに直したのですけれど、修正前のものを持ってきていたようです。
指摘ありがとうございました。 (Mook) 2014/07/02(水) 12:51
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.