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定数):
xlCellTypeBlanks
: 空白のセルxlCellTypeConstants
: 定数値を含むセルxlCellTypeFormulas
: 式を含むセルxlCellTypeLastCell
: ワークシートの最後のセルxlCellTypeComments
: コメントを含むセルxlCellTypeVisible
: 現在可視状態のセルxlCellTypeAllFormatConditions
: 条件付き書式設定のあるセルxlCellTypeSameFormatConditions
: 選択されたセルと同じ条件付き書式設定のセル
Value (XlSpecialCellsValue定数):
xlErrors
: エラーを含むセル(TypeがxlCellTypeConstantsまたはxlCellTypeFormulasの場合にのみ使用可能)xlLogical
: ブール型の値を含むセル(TypeがxlCellTypeConstantsまたはxlCellTypeFormulasの場合にのみ使用可能)xlNumbers
: 数値を含むセル(TypeがxlCellTypeConstantsまたはxlCellTypeFormulasの場合にのみ使用可能)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
メソッドは非常に便利な反面、選択しようとするセルが存在しない場合にはエラーを返すことに注意が必要です。したがって、常に適切なエラーハンドリングを行うことが重要です。