'アクティブセル以外のセルを選択状態にする(行方向) Selection.RowDifferences(ActiveCell).Select
'アクティブセル以外のセルを選択状態にする(列方向) Selection.ColumnDifferences(ActiveCell).Select
「RowDifferences」・「ColumnDifferences」メソッドは、指定したセルと同一のセル以外を選択します
このメソッドは、指定範囲内に引数に指定するセルが存在していないとエラーになります
なので、基本的にはこのメソッドの引数にはActiveCellやCellsなどの相対的な指定方法で行う必要があります
また、引数に指定できるセルは単一のセルになるので、複数のセルを指定した場合もエラーになります
メソッドの動き
Selection.RowDifferences(ActiveCell).Select
画像ではこのコードが実行されています
RowDifferencesメソッドは、行方向への操作時に使用します
画像の動きではActiveCellはA2になりますので、条件は「ステータスA」が指定される形になります
このメソッドは、指定したもの以外を選択状態にするので
元々の選択範囲から「ステータスA」を除いたセルが選択状態になります
空白も対象になるので、列全体を指定するワークシートの列全体を選択してしまいます
Selection.ColumnDifferences(ActiveCell).Select
ColumnDifferencesメソッドは、列方向への操作時に使用します
画像の動きでは、ActiveCellはB2になっていますので、空白のセルが指定される形になります
なので、選択範囲の中で空白ではないセルが指定される形になっています
この画像の動きのように、行のなかで特定の列だけにデータが入力されている表でどの列にデータが入力されているかを調べるのに適しているメソッドです
ただ、指定範囲の中に条件のセルを含める必要があるのがすこし難点です
なので、この画像の例の表ではその為にあえて何も入力しない空白列(B列)が作成されています
こうすることで、常に空白を指定することが出来るようにはなります
しかし、この動きであればFindメソッドの方が柔軟に条件も指定出来て便利ではあります
ですが、Findメソッドは一度に条件にあてはまるセルを選択するような動きはできません
あくまでも1セルずつ処理を行っていきます
でもこのメソッドなら、条件さえ整えてあげれば一括で条件に当てはまるセルを一括選択できます
逆説なので、条件を整えるのがたいへんですが・・・
使いどころが難しいメソッドですが、機能としては便利な機能だと思います