SpecialCells(xlCellTypeBlanks) VBA 関数が Excel で想定どおりに機能しない

現象

次のような VBA 式を使用する Microsoft Excel ブック内の複数の連続しない範囲を選択する Microsoft Visual Basic for Applications (VBA) マクロを作成すると、連続しないセルでのみ発生するはずのアクションが、ワークシート上の元の選択範囲のすべてのセルに対して発生します。

expression.SpecialCells(XlCellType).expression XlCellType

は、次のいずれかになります。

  • xlCellTypeAllFormatConditions
  • xlCellTypeAllValidation
  • xlCellTypeBlanks
  • xlCellTypeComments
  • xlCellTypeConstants
  • xlCellTypeFormulas
  • xlCellTypeSameFormatConditions
  • xlCellTypeSameValidation
  • xlCellTypeVisible

原因

この動作は、マクロで 8,192 個を超える連続しないセルを選択した場合に発生します。 Excel では、VBA マクロを介して最大 8,192 個の連続しないセルのみがサポートされます。

通常、8,192 個を超える連続しないセルを手動で選択しようとすると、次のエラー メッセージが表示されます。

選択範囲が大きすぎます。

ただし、VBA マクロを使用して同じまたは同様の選択を行うと、エラー メッセージは発生せず、エラー ハンドラーを介してキャプチャできるエラー コードは生成されません。

回避策

この動作を回避するには、VBA マクロでループ構造を作成し、最大 8,192 セル未満を処理します。

状態

この動作は仕様です。