【VBA道場】#32 行の挿入(書式を引き継ぐ) 

ExcelVBA

【VBA道場】#32 行の挿入(書式を引き継ぐ) 



問題

2行目に行を追加(上の行の書式を適用)し、6行目にも行を追加(下の行の書式を適用)してください。

 

完成見本

 

解答

Sub vba_doujyou_32()

    '2行目に行を挿入し、上の行の書式を適用
    Range("A2").EntireRow.Insert copyorigin:=xlFormatFromLeftOrAbove

    '6行目に行を挿入し、下の行の書式を適用
    Range("A6").EntireRow.Insert copyorigin:=xlFormatFromRightOrBelow

End Sub

サンプルファイル(マクロ無)

 

サンプルファイル(マクロ有)

 

解説

Rangeオブジェクト.EntireRow.Insert CopyOrigin:=上下どちらの書式を適用するか
行を挿入して、上下どちらかの書式を引き継ぐ

 

今回は行を挿入して上下どちらかの書式を引き継ぐというマクロを書きました。
(書式を引き継がない挿入についてはこちらをご覧ください。)

まずは、どこに行を挿入するかを「EntireRow.Insert」を使って書きます。

Range("A2").EntireRow.Insert ’2行目に行を挿入

Range("A6").EntireRow.Insert  ’6行目に行を挿入

今回は、2行目と6行目に行を挿入するため、「A2」と「A6」を指定しました。

 

続いて、書式を引き継ぐ場合は、上下どちらの行の書式を引き継ぐかを「CopyOrigin」にて指定する必要があります。
今回は、2行目に上の行の書式を適用し、6行目には下の行を適用しました。

   '2行目に行を挿入し、上の行の書式を適用
    Range("A2").EntireRow.Insert copyorigin:=xlFormatFromLeftOrAbove

    '6行目に行を挿入し、下の行の書式を適用
    Range("A6").EntireRow.Insert copyorigin:=xlFormatFromRightOrBelow

 

CopyOriginにて指定できる定数は下記の2つです。

xlFormatFromLeftOrAbove 上行の書式を適用する
xlFormatFromRightOrBelow 下行の書式を適用する

 

おわりに

今回は、行を挿入し、上下の書式を引き継ぐマクロを作成しました。
行の挿入において書式を引き継げるようになると非常に便利です。

しっかり復習しましょう!
本日はここまで。

 

おすすめ参考書

Amazon

たった1秒で仕事が片付くExcel自動化の教科書

いちばんやさしいExcelVBAの教本

ExcelVBA逆引き辞典 パーフェクト

楽天

いちばんやさしいExcelVBA

 

 

すらすら読めるExcelVBA

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

スラスラ読めるExcel VBAふりがなプログラミング [ リブロワークス ]
価格:2035円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

 

VBA逆引き大辞典

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Excel VBA逆引き辞典パーフェクト第3版 [ 田中亨 ]
価格:2838円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

タイトルとURLをコピーしました