web-dev-qa-db-ja.com

CTRL + Aショートカットでブロックの選択をエミュレートするVBAコードは何ですか?

以前のバージョンのExcelでは、ワークシートでCTRL + Aを押すと、文字通りすべてのセルが選択されました。 Excel 2010(2007または2003については不明)では、値を含むセルのブロック内でCtrl + Aキーを押すと、そのブロック内のセルのみを選択するように見えることがわかりました。たとえば、範囲A1:D10のすべてのセルに値が含まれていて、アクティブセルがその範囲にあるときにCTRL + Aを押すと、A1:D10のみが選択されます。もう一度CTRL + Aを押すと、そのときだけ実際にワークシートのすべてのセルが選択されます。

そのため、マクロを記録して、これを実行するとどのマクロコードが生成されているかを確認しましたが、CTRL + Aを押すと、実際にはRange("A1:D10").Selectが書き込まれます。これは、アクティブセルの周囲の境界を決定するために独自のロジックを記述する必要があるため、動的ではなく制限です。 ActiveCell.End(xlDown)などのメソッドを使用することは難しくありませんが、ここでホイールを作り直す必要はありません。

ActiveCell.GetOuterRange.SelectなどのExcel VBAメソッドはありますか?それはいいね。

13

あなたができるすべての汚れた細胞のために;

ActiveSheet.UsedRange.Select

または、現在のセルを隣接する方法で隣接するセルの場合は、

ActiveCell.CurrentRegion.Select
28
Alex K.