和風スパゲティのレシピ

日本語でコーディングするExcelVBA

4本目:セルの消去

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になります。

この分岐だけしっかり用意しておきましょう。