Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、
「VBA100本ノック」に対する私の回答と解説のページです。
100本ノックの出題リストはこちらから
excel-ubara.com
出題:セルの消去
#VBA100本ノック 4本目
画像のように1行目に見出し、A列に№が入っています。
この表範囲の一部には計算式が入っています。
(画像の最下行とD列には数式が入っています。)
データ行数は毎回変化します。
見出し行とA列№と計算式は残し、定数値だけを消去してください。
※画像ならB2:C11を消去

◇ 出題ページはこちら
ソースコード
Option Explicit ' 100本ノック004:セルの消去 Sub 表内の定数値だけを消去する() Dim 消去エリア As Range Set 消去エリア = WSデータ.Range("A1").CurrentRegion Set 消去エリア = 消去エリア.Offset(1, 1) Set 消去エリア = 消去エリア.SpecialCells(xlCellTypeConstants) If Not 消去エリア Is Nothing Then 消去エリア.ClearContents End If End Sub
解説
表内の定数値だけを消去する問題でした。
A列・見出しを除外する必要がありますが、
今回くらいだとOffset(1, 1)でやってしまうのが簡単ですね。
特に注意すべきところはありませんが、
SpecialCellsは対象セルがない場合にNothingになります。
この分岐だけしっかり用意しておきましょう。