2011年06月08日

ExcelVBAで選択範囲に対する処理実行

Excelで選択した範囲の各セルに対して処理を行いたいと思った.

今回はVBAマクロを使う.


a. 選択しているものがセルではなく,グラフなどのオブジェクト
b. 選択している範囲が列や行全体,またはシート全体など無限大



となった場合にはエラーにしたいと思ったのでその方法をメモ.

選択範囲を知るには,Selection を使えば良い.

a. については,オブジェクトの名前を得ることができるので,

TypeName(Selection) <> "Range"


を判定すれば良い.


b. については,少し手こずった.理由は以下の式,

Dim cnt as Integer
cnt = Selection.Cells.Count



としたときに,例えば列全体を選択していると,オーバーフローを起こしてエラーになる.
なんなの,Excel.
more read...
posted by maplewine at 19:00| Comment(0) | TrackBack(0) | VB | このブログの読者になる | 更新情報をチェックする