Excel VBAでエラーや空白などのセルを取得するSpecialCellsの使い方と定数一覧

SpecialCellsとは、エラーや空白などの特別な条件を満たすセルを取得するメソッドです。ここでは引に使用する定数の一覧と使用例サンプルのVBAを掲載します。

SpecialCellsの構文
オブジェクト.SpecialCells(Type,Value)
Type : 取得するセルの種類を指定します。
Value : 引数typeにxlCellTypeConstantsかxlCellTypeFormulasを設定した場合のみ使用します。これによりさらに細かな条件指定が可能になります。

引数Typeの定数
定数 内容
xlCellTypeAllFormatConditions 表示形式が設定されているセル
xlCellTypeAllValidation 条件の設定がされているセル
xlCellTypeBlanks 空白のセル
xlCellTypeComments コメントが挿入されているセル
xlCellTypeConstants 定数が含まれているセル
xlCellTypeFormulas 数式が使用されているセル
xlCellTypeLastCell 使われたセル範囲内の最後のセル
xlCellTypeSameFormatConditions  同じ表示形式が設定されているセル
xlCellTypeSameValidation 同じ条件の設定がされているセル
xlCellTypeVisible 可視セル

引数Valueの定数
定数 内容
xlErrors エラー値
xlLogical 論理値
xlNumbers 数値
xlTextValues  文字


Homeに戻る > Excel セルのTipsへ

SpecialCellsで空白セルと数式が入力されているセルを選択する

空白セルを選択するVBAです。
空白セルを選択するVBA

・引数TypeにxlCellTypeBlanksを指定しています。

Sub MySpecialCells()
    Range("B4:F15").SpecialCells (xlCellTypeFormulas)
    (xlCellTypeBlanks).Select
End Sub

実行結果のシートです。
空白のセルが選択されています。
空白のセルが選択された

数式が入力されているセルを選択するVBAです。
数式が入力されているセルを選択するVBA

・引数TypeにxlCellTypeBlanksを指定しています。

Sub MySpecialCells()
    Range("B4:F15").SpecialCells (xlCellTypeFormulas)
    (xlCellTypeBlanks).Select
End Sub

実行結果のシートです。
数式が入力されているセルが選択されています。
数式が入力されているセルが選択された

数式が入力されているセルの背景色をピンクに変更するVBAです。
数式が入力されているセルの背景色をピンクに変更するVBA

・Interior.Colorで背景色を設定します。
・RGB(234, 148, 152)でピンクになります。

Sub MySpecialCells()
    Range("B4:F15").SpecialCells(xlCellTypeFormulas).Interior.Color = RGB(234, 148, 152)
End Sub

実行結果のシートです。
数式が入力されているセルの背景色がピンクになりました。
数式が入力されているセルの背景色がピンクになった



SpecialCellsでエラーのセルを取得し、その個数を表示する

エラーのセルを取得し、そのセル数をMsgboxで表示するVBAです。
エラーのセルを取得し、そのセル数をMsgboxで表示するVBA

・Rangeオブジェクトに、SpecialCellsで取得したエラーのセルをセットします。
・Rangeオブジェクトにセットされたセルの個数をMsgboxで表示します。

Sub MySpecialCells()
    Dim tRange As Range
    
    Set tRange = Range("B4:F15").SpecialCells(xlCellTypeFormulas, xlErrors)
    tRange.Select
    MsgBox "エラーが発生しているセルが、" & tRange.Count & "個ありました。"
End Sub

実行結果です。
エラーの発生しているセルの個数が表示できました。
エラーの発生しているセルの個数が表示できた

上のVBAをエラーが発生していない表で実行すると、下のように「実行時エラー:アプリケーション定義またはオブジェクト定義のエラーです」とエラーになってしまいます。
VBAをエラーが発生していない表で実行

On Error Gotoを使用しエラーを回避したVBAです。
On Error Gotoを使用しエラーを回避したVBA

・エラーが発生した場合、On Error GotoでラベルErrExitにとばします。

Sub MySpecialCells()
    Dim tRange As Range
    
On Error GoTo ErrExit
    Set tRange = Range("B4:F15").SpecialCells(xlCellTypeFormulas, xlErrors)
    tRange.Select
    MsgBox "エラーが発生しているセルが、" & tRange.Count & "個ありました。"
    Exit Sub

ErrExit:
    MsgBox "エラーが発生しているセルは見つかりませんでした。"
End Sub

実行結果です。
エラーがない場合、「エラーが発生しているセルは見つかりませんでした。」とメッセージが表示されます。
エラーがない場合、「エラーが発生しているセルは見つかりませんでした。」とメッセージが表示


Homeに戻る > Excel セルのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved