SpecialCellsメソッド解説(Excel VBA)

Excel VBA: SpecialCellsメソッドの解説と使用例

Excel VBAのSpecialCellsメソッドは、特定の種類のセルや範囲を返す非常に便利な機能です。これにより、空白のセル、定数、式、最後のセルなど、さまざまなタイプのセルを選択または操作することができます。

引数・パラメータ

SpecialCellsメソッドは以下のように使用されます:

expression.SpecialCells(Type, Value)

ここで、expressionは範囲を表すオブジェクトで、TypeとValueは以下の通りです:

  • Type: 必須です。セルの種類を示すXlCellType定数を指定します。最も一般的に使用されるのはxlCellTypeConstantsとxlCellTypeFormulasですが、その他にも多数の定数が存在します。
  • Value: 省略可能です。Typeパラメータで指定したセルの中から、さらに特定の種類のセルを選ぶためのXlSpecialCellsValue定数を指定します。TypeがxlCellTypeConstantsまたはxlCellTypeFormulasの場合にのみ使用できます。

SpecialCellsメソッドに使用できる主要な値には以下のものがあります:

Type (XlCellType定数):

  1. xlCellTypeBlanks: 空白のセル
  2. xlCellTypeConstants: 定数値を含むセル
  3. xlCellTypeFormulas: 式を含むセル
  4. xlCellTypeLastCell: ワークシートの最後のセル
  5. xlCellTypeComments: コメントを含むセル
  6. xlCellTypeVisible: 現在可視状態のセル
  7. xlCellTypeAllFormatConditions: 条件付き書式設定のあるセル
  8. xlCellTypeSameFormatConditions: 選択されたセルと同じ条件付き書式設定のセル

Value (XlSpecialCellsValue定数):

  1. xlErrors: エラーを含むセル(TypeがxlCellTypeConstantsまたはxlCellTypeFormulasの場合にのみ使用可能)
  2. xlLogical: ブール型の値を含むセル(TypeがxlCellTypeConstantsまたはxlCellTypeFormulasの場合にのみ使用可能)
  3. xlNumbers: 数値を含むセル(TypeがxlCellTypeConstantsまたはxlCellTypeFormulasの場合にのみ使用可能)
  4. xlTextValues: テキスト値を含むセル(TypeがxlCellTypeConstantsまたはxlCellTypeFormulasの場合にのみ使用可能)

これらの値を組み合わせることで、様々な特性を持つセルを特定・操作することが可能になります。

サンプルコード

以下に、SpecialCellsメソッドを用いてワークシート内の全ての空白セルを選択するサブプロシージャを示します。


Sub SelectBlankCells()
    Dim rng As Range
    On Error Resume Next
    Set rng = ActiveSheet.Cells.SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rng Is Nothing Then
        rng.Select
    End If
End Sub

このコードは、アクティブシートの全ての空白セルを選択します。まず、On Error Resume Nextステートメントを使用して、エラーが発生した場合に実行を続けるようにします。これは、特定のセルタイプ(この例では空白セル)が存在しない場合、SpecialCellsメソッドがエラーを返す可能性があるためです。次に、SpecialCellsメソッドを使用して空白セルを選択し、その範囲をrngオブジェクトに設定します。エラーが発生した場合、rngはNothingのままになります。最後に、If Not rng Is Nothing Thenステートメントを使用してrngが有効な範囲を持っている場合にのみ、その範囲を選択します。

注意点

このSpecialCellsメソッドは非常に便利な反面、選択しようとするセルが存在しない場合にはエラーを返すことに注意が必要です。したがって、常に適切なエラーハンドリングを行うことが重要です。