【VBA道場】#33 行の挿入(書式は引き継がない)
問題
6行目に行を追加してください。(書式は引き継がない)
完成見本
解答
Sub vba_doujyou_33()
'6行目に行を挿入
Range("A6").EntireRow.Insert
'6行目の書式をクリア
Range("A6").EntireRow.ClearFormats
End Sub
サンプルファイル(マクロ無)
VBA道場33 サンプルファイル(マクロ無)
1 ファイル 8.62 KB
サンプルファイル(マクロ有)
VBA道場33 サンプルファイル(マクロ有)
1 ファイル 12.08 KB
解説
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
|
VBA逆引き大辞典
|