[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『書式設定マクロ』(ルイボス)
業務で後述の行を追加するマクロボタンを作成しました。
関数わからない人でも簡単に変更できるようにコードを一つのマクロ内に記載しました。
設定した通り白で罫線を引いたセルを挿入できます。
しかし色のついている行の下に追加する際に色が変わらないシートがあります。
なぜ同じ結果が得られないのでしょうか?
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
色や罫線の設定は四行目に対して行って、
そのあとの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
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
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.