下記のマクロは、
B3セルからE13セルまでマウスで範囲指定して、外枠と内側に薄い罫線を引く操作をマクロ記録にて作成したものですが、
実際には、行数が毎回変わるため、C列を基準に最終行(LastRow)を取得して、
「"B3:E" & LastRow」の範囲指定で罫線を引きたいのですが、ソースをもっとスッキリさせられないでしょうか?
また、ソースの一部を変えるだけで通常の実線にできると助かります。
----------ソース----------
Range("B3:E13").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Color = -5921371
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Color = -5921371
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Color = -5921371
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Color = -5921371
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Color = -5921371
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Color = -5921371
.TintAndShade = 0
.Weight = xlHairline
End With
No.1ベストアンサー
- 回答日時:
こんにちは
罫線が四周とも同じ指定なら、まとめて設定すればよろしいでしょう。
ご提示のコードでは色がカラーコードになっていますが、わかりにくいと思いますのでRGB値で指定するように変えてあります。
定数他(Const等で定義)の値を変えることで、設定内容を変えられます。
Dim n As Long, bColor As Long
Const bStyle = xlContinuous 'xlDash, xlDashDot, xldot
Const bWeight = xlHairline 'xlmedium, xlthick, xlthin
bColor = RGB(165, 165, 165)
n = Application.Max(Cells(Rows.Count, 3).End(xlUp).Row, 3) - 2
With Range("B3:E3").Resize(n).Borders
.LineStyle = bStyle
.Color = bColor
.TintAndShade = 0
.Weight = bWeight
End With
ありがとうございます!
とてもスッキリまとまってしまいますね。
ちょっと欲張りなんですが、
・外枠及び縦線だけは太く
・項目名セルの下側も太く
・それ以外の内側の線(横線)は細く
こんな引き方だとどういう書き方になりますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) オートフィルタで抽出結果に 罫線をひく方法 1 2022/07/13 13:08
- Visual Basic(VBA) VBA 罫線について B列3行目から21行毎にデータがはいります。 データがはいったらデータが入った 6 2022/11/15 17:22
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 複数セルに〇印をつけるマクロ 4 2022/09/07 05:33
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) VBA シート上にドロップダウンリストを作り、予め指定値をセットしたいのですが 1 2023/03/25 15:15
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- その他(Microsoft Office) 選択行の列範囲に二重線を引く 3 2022/06/08 12:21
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
【Excel VBA】指定行以降をクリ...
-
【Excel】指定したセルの名前で...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定の文字を条件に行挿入とそ...
-
DataGridViewの各セル幅を自由...
-
Excel vbaで特定の文字以外が入...
-
Excelのプルダウンで2列分の情...
-
Excelのハイパーリンクにマクロ...
-
【VBA】シート上の複数のチェッ...
-
Excelで指定した日付から過去の...
-
実行時エラー438 オブジェクト...
-
指定した条件で範囲選択したい
-
EXCELで変数をペーストしたい
-
VBAを使用した時間管理
-
EXCELのVBA-フィルタ抽出後の...
-
VBA初心者です。結合セルを保持...
-
UWSCで値のみコピーするには?
-
DataGridViewのセルのItem設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報
fujillinさん、おかげで助かりました。
罫線に引き方について欲が出てきたのですが、
まだ自力で応用ができるまでに至ってません^^;
新しく質問させていただく事にします。
ありがとうございました。