[[20180608144216]] 『枝番のフォント修正』(にま) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『枝番のフォント修正』(にま)

C列に0〜1500までの時フォントを36にしています。この値の間に枝番が生じた場合も同様にフォントを36にしたいです。(たとえば100-1、100-2や200-1、200-2等の場合)枝番は-1と-2のみです。宜しくお願いします。

    Dim r As Range

    With Range("C:C")
    .Font.Size = 11
    If Application.Count(.Cells) > 0 Then
    For Each r In .SpecialCells(xlCellTypeConstants, 1)
    If r > 0 And r <= 1500 Then
    r.Font.Size = 36
    End If
    Next
    End If

    End With

< 使用 Excel:Excel2010、使用 OS:Windows7 >


なんか書き方がバラバラで違和感が…。 自分でヘルプ読んで書いたコードではないとかですかね? 人に見せるなら、ネストが判るようにすべき。

まず、SpecialCells の第2引数に 1 を指定していますが、これは定数で xlNumbers にあたり、数字だけ選択されます。そして、「100-1」は数字ではないので、選択されません。 「100-1」を対象にしたいなら、第2引数は省略してしまうか、xlNumbers Or xlTextValues (つまり、1 + 2 = 3)を指定しましょう。 第1引数は定数名でコーディングしたなら、第2引数も定数にすべきですね。 そして、テキスト形式も対象にしたのだから、数値化すればハイフン以降は消えるので、それから大小比較すれば良いでしょう。(数字始まりで無い文字列は0になるので、対象外になります)

            For Each r In .SpecialCells(xlCellTypeConstants, xlNumbers Or xlTextValues)
                If Val(r) > 0 And Val(r) <= 1500 Then
                    r.Font.Size = 36
                End If
            Next
(???) 2018/06/08(金) 15:31

Sub test2()
    Dim c As Range
    Dim i As Variant

    Range("C:C").Font.Size = 11
    For Each c In Range("C1:C" & Cells(Rows.Count, "C").End(xlUp).Row)
        i = Split(c.Value, "-")(0)
        If IsNumeric(i) Then
            If i > 0 And i <= 1500 Then c.Font.Size = 36
        End If
    Next
End Sub

こんな感じですかね...
(まっつわん) 2018/06/08(金) 15:58


とても分かりやすい説明も頂きありがとうございます!
上手くいきました!!
(にま) 2018/06/08(金) 16:46

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.