今回はVBAマクロを使う.
a. 選択しているものがセルではなく,グラフなどのオブジェクト
b. 選択している範囲が列や行全体,またはシート全体など無限大
となった場合にはエラーにしたいと思ったのでその方法をメモ.
選択範囲を知るには,Selection を使えば良い.
a. については,オブジェクトの名前を得ることができるので,
TypeName(Selection) <> "Range"
を判定すれば良い.
b. については,少し手こずった.理由は以下の式,
Dim cnt as Integer
cnt = Selection.Cells.Count
としたときに,例えば列全体を選択していると,オーバーフローを起こしてエラーになる.
なんなの,Excel.
more read...