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