[[20180829121548]] 『書式設定マクロ』(ルイボス) ページの最後に飛ぶ

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

 

『書式設定マクロ』(ルイボス)

業務で後述の行を追加するマクロボタンを作成しました。
関数わからない人でも簡単に変更できるようにコードを一つのマクロ内に記載しました。
設定した通り白で罫線を引いたセルを挿入できます。
しかし色のついている行の下に追加する際に色が変わらないシートがあります。
なぜ同じ結果が得られないのでしょうか?

Sub Insert_Row()

    Dim rLog As Range
    Dim nLoopCnt As Integer
    Set rLog = Range("A3:E3")
    nLoopCnt = 0

    Range("A3").EntireRow.Insert

    With rLog
        .Interior.Color = RGB(255, 255, 255)
        .Borders(xlEdgeTop).LineStyle = xlContinuous            '上の罫線の種類を設定
        .Borders(xlEdgeTop).Weight = xlThin                     '上の罫線の太さを設定

        .Borders(xlEdgeBottom).LineStyle = xlContinuous         '下の罫線の種類を設定
        .Borders(xlEdgeTop).Weight = xlThin                     '下の罫線の太さを設定

        .Borders(xlEdgeLeft).LineStyle = xlContinuous           '左の罫線の種類を設定
        .Borders(xlEdgeTop).Weight = xlThin                     '左の罫線の太さを設定

        .Borders(xlEdgeRight).LineStyle = xlContinuous          '右の罫線の種類を設定
        .Borders(xlEdgeTop).Weight = xlThin                     '右の罫線の太さを設定

        .Borders(xlInsideHorizontal).LineStyle = xlContinuous   '水平線の罫線の種類を設定
        .Borders(xlInsideHorizontal).Weight = xlThin            '水平線の罫線の太さを設定

        .Borders(xlInsideVertical).LineStyle = xlContinuous     '垂直線の罫線の種類を設定
        .Borders(xlInsideVertical).Weight = xlThin              '垂直線の罫線の太さを設定

        .Font.Color = RGB(0, 0, 0)
        .Font.Name = "Meiryo UI"
        .Font.Size = 10
        .Font.Bold = False
    End With

        For nLoopCnt = 1 To 5
            Cells(3, nLoopCnt).Style = "標準"
            Select Case nLoopCnt
                Case nLoopCnt <> 1
                    Cells(3, nLoopCnt).NumberFormatLocal = "yyyy/m/d"

                Case nLoopCnt <> 2
                    Cells(3, nLoopCnt).NumberFormatLocal = "v0.000"

                Case Else
                    Cells(3, nLoopCnt).NumberFormatLocal = "G/標準"
            End Select
            nLoopCnt = nLoopCnt + 1
        Next nLoopCnt
End Sub

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


うーーん、長い、、
罫線のところは

    With rLog
        .Interior.Color = RGB(255, 255, 255)
        .Borders.LineStyle = True
        .Font.Color = RGB(0, 0, 0)
        .Font.Name = "Meiryo UI"
        .Font.Size = 10
    End With

で充分です。

あと、SelectCaseのところステップ実行すると分かりますけど
1から5まで全部 Case Else の処理してます。

For〜Next 内で

 nLoopCnt = nLoopCnt + 1
としていますが、そうするとnLoopCnt は[2 , 4 , 6]と繰り返して 6 で終了します。

(TAKA) 2018/08/29(水) 13:35


そもそもですが、変数に Range("A3:E3") を設定したあとで
三行目を新しく挿入しているので、罫線が引かれたりするのは
四行目ですよね??
これでOKなんでしょうか、、

色や罫線の設定は四行目に対して行って、
そのあとのSelectCaseでは三行目を操作しています、、

色や罫線は A列〜E列(4行目) が対象で
SelectCase のところでは B列 , D列 , F列(3行目) が対象です

やりたいことが良くわからないので詳しく説明してほしいです。
(TAKA) 2018/08/29(水) 13:46


TAKAさん ありがとうございます。
詳細に説明すると、
・A2:E2までの1行5項目を項目名とし、色を付けたりとセル設定や個別の書式設定をします。
 その下(3行目)に罫線を格子状に引いた色なしセル(書式も別設定)を作成し、入力項目としたいです。

コードの癖はCとC++を半端にしていたのでその名残です。
現状VBAをすぐに触れるのが私だけなのでコードを書きましたが、コードを書ける別の方がいらしたときにさくっと見てわかるようにと思い関数分けを連打しないようにしました。
(ルイボス) 2018/08/29(水) 14:17


For〜Nextの必要をあまり感じないので、、
参考にしてください。
また書式設定はどうしたいのかよく分からないので
こんな感じにしたいのかな?と雰囲気で書いてます。
お望みどおりに修正してください。

    Sub Insert_Row()
        Dim rLog As Range

        Range("A3").EntireRow.Insert
        Set rLog = Range("A3:E3")
        With rLog
            .Interior.Color = RGB(255, 255, 255)
            .Borders.LineStyle = True
            .Font.Color = RGB(0, 0, 0)
            .Font.Name = "Meiryo UI"
            .Font.Size = 10
            .Font.Bold = False
        End With
        Range("A3").NumberFormatLocal = "yyyy/m/d"
        Range("B3").NumberFormatLocal = "v0.000"
        Range("C3:E3").NumberFormatLocal = "G/標準"
    End Sub

(TAKA) 2018/08/29(水) 14:30


TAKAさん

ありがとうございます!
頂いたコードのとおりに動かしたかったので助かりました。
ステップの見方がVisualStudioとは違うっぽくて見られていなかったので気づけませんでしたが、
ForNextで+1されるんですかね?
VBA初心者なので教えていただければありがたいです。
(ルイボス) 2018/08/29(水) 15:02


はい、以下のコードで試してみてください。
VBAでForNextは基本なので調べればいくらでも出てきますよ。

 Sub ForNext()
    Dim I
    For I = 1 To 5
        MsgBox I
    Next I
 End Sub

ちなみに、ステップ実行はプロシージャ内にカーソルがある状態で F8 を押すと出来ます。
(TAKA) 2018/08/29(水) 15:12


コメント返信:

[ 一覧(最新更新順) ]


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