【VBA道場】#33 行の挿入(書式は引き継がない)

ExcelVBA

【VBA道場】#33 行の挿入(書式は引き継がない)



問題

6行目に行を追加してください。(書式は引き継がない)

 

完成見本

 

解答

Sub vba_doujyou_33()

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

    '6行目の書式をクリア
    Range("A6").EntireRow.ClearFormats   

End Sub

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

 

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

 

解説

Rangeオブジェクト.EntireRow.Insert.ClearFormats
行の挿入(書式は引き継がない)

今回は行を挿入し、書式は引き継がない方法を学習します。
前回は、書式をコピーするやり方を勉強しました。

 

書式を指定する場合は、CopyOriginに定数を指定しました。
しかし、「書式のクリア」に関する定数はありません

そこで、挿入した行に対して「ClearFormats」メソッドを実行することにより、書式をクリアすることができます。

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

'6行目の書式をクリア
Range("A6").EntireRow.ClearFormats 

この書き方では「Range(“A6”).EntireRow」を2回も書かなくてはなりません。
面倒くさいですよね。

 

そこで、「With」を使ってもう少しコードをスマートにしてみましょう。
Withに関してはこちらを参照してください。

Sub vba_doujyou_33()

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

    '6行目の書式をクリア
    Range("A6").EntireRow.ClearFormats  

End Sub

Sub vba_doujyou_33()

    With Range("A6").EntireRow
            .Insert                      '6行目に行を挿入
            .ClearFormats              '6行目の書式をクリア
    End With

End Sub

Withを使うとRange(“A6”).EntireRowの部分が省略できるので、コードが非常にすっきりしますね。

 

おわりに

今回は行の挿入について学習しました。
前回の書式を引き継ぐパターンと引き継がないパターン、2通りをしっかり押さえておきましょう。

今日はここまで!

 

おすすめ参考書

Amazon

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

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

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

楽天

いちばんやさしいExcelVBA

 

 

すらすら読めるExcelVBA

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

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

楽天で購入

 

 

 

VBA逆引き大辞典

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

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

楽天で購入

 

 

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