特定のセルとは

セルにはいろいろな値を設定することが出来ます。

数値や文字だけでなく、条件付き書式や数式や定数やコメントや入力規則が設定されていることもあります。また、値を設定していない空白セルもあります。数式のセルの場合はエラーのセルもあります。

それらのセルを「特定のセル」と呼びます。


Excelでの特定セルの選択

Excelで特定のセルを選択するには、ホームタブ→検索と選択 を開き、選択したいセルの種類を選びます。

「条件を選択してジャンプ」を選択するとさらに詳細のダイアログが表示されます。

見つからない場合は警告メッセージが表示されます。




SpecialCellsメソッド

上記のように、Excelの操作で特定セルの選択を行うことが出来ます。

VBAではSpecialCellsメソッドを利用することで特定セルの判別が可能です。

SpecialCellsメソッドは引数によって参照するセルの種類が変わります。

構文

設定項目

  • 親オブジェクト
    セル範囲を示すRangeオブジェクトを親オブジェクトとして指定します。単一セル、複数セル範囲のどちらでも指定可能です。省略できません。
  • Type
    セルの種類を指定します。指定はXlCellType列挙型の定数を使用します。条件付き書式のセルはxlCellTypeAllFormatConditionsを設定します。複数の定数を同時に指定することは出来ません。

    定数 設定内容
    xlCellTypeAllFormatConditions 条件付き書式が設定されているセルを対象とします
    xlCellTypeAllValidation 入力規則が設定されているセルを対象とします
    xlCellTypeBlanks 空白セルを対象とします
    xlCellTypeComments コメントが設定されているセルを対象とします
    xlCellTypeConstants 定数(数値、文字、論理値、エラー値のいずれか、または全て)が設定されているセルを対象とします。エラー値はセルにエラー値が直接入力されているものが対象になるため数式でエラーになっているものは含みません。
    xlCellTypeFormulas 数式(数値、文字、論理値、エラー値のいずれか、または全て)が設定されているセルを対象とします。エラー値は数式の結果エラーになっているものが対象になるため直接入力でエラーになっているものは含みません。
    xlCellTypeLastCell セル範囲の最後セルを対象とします
    xlCellTypeSameFormatConditions 同じ条件付き書式が設定されているセルを対象とします
    xlCellTypeSameValidation 同じ入力規則が設定されているセルを対象とします
    xlCellTypeVisible 表示されている全てのセルを対象とします
  • Value
    TypeにxlCellTypeConstants(定数)、または、xlCellTypeFormulas(数式)を指定している場合に利用します。エラー値、論理値、数値、文字の4つをxlSpecialCellsValue列挙型から選択します。複数指定が可能です。数値と文字の2つを設定したい場合など、複数設定する場合は、定数を+でつなげます。

    定数 設定内容
    xlErrors エラー値(#DIV/0!、#N/A、#NAME?、#NULL!、#NUM!、#REF!、#VALUE!)
    xlLogical 論理値(TRUEまたはFALSE)
    xlNumbers 数値
    xlTextValues 文字



注意点

特定のセルを判別する場合、複数の条件に一致する場合があります。それらについて補足します。

発生頻度が多い3パターンを以下に示していますが、他にも複合パターンはいくつもあります。そのため思わぬセルが抽出される場合があります。実際にコードを書く場合はシートの内容と照らし合わせて望んでいるセルが抽出できる条件なのかを確認してください。

条件付き書式と定数は同一抽出ができる

条件付き書式が設定されてあり、かつ、そのセルの値が定数の場合、xlCellTypeAllFormatConditions(条件付き書式)とxlCellTypeConstants(定数)のどちらの場合も抽出対象になります。

条件付き書式と数式は同一抽出ができる

条件付き書式が設定されてあり、かつ、そのセルの値が数式の場合、xlCellTypeAllFormatConditions(条件付き書式)とxlCellTypeFormulas(数式)のどちらの場合も抽出対象になります。

定数と数式は同一抽出はできない

「3」という表示のセルがあったとします。これは定数として直接入力している場合と、数式の算出結果の場合の2通りがありますが、xlCellTypeConstants(定数)の場合とxlCellTypeFormulas(数式)の場合のそれぞれの場合でしか抽出されません。


サンプルコード

各種特定セルの取得

引数Typeの全パターンです。抽出セルを変数rに入れているだけなので、それ以降の処理については次のコードを参考にしてください。



条件付き書式のセル

条件付き書式が設定されているセルを抽出し、そのセルに斜め枠線を設定するサンプルコードです。



指定した特定のセルがない場合

SpecialCellsメソッドのType引数で指定した特定のセルが指定した範囲にない場合は実行時エラー1004になります。

エラー対応をしていない場合はそこで処理が止まってしまうため、SpecialCellsメソッドを使う場合はなんらかのエラー対応は入れておきましょう。

以下のコードは14行目でエラーを検出した場合は処理を抜けるようにしています。