2007年7月21日土曜日

第24回目 セルの範囲をマクロ処理中に指定する

○第24回目 セルの範囲をマクロ処理中に指定する

 セルの範囲の指定について、通常は指定してからマクロを動かすことで事足りるのですが、2つ以上あるとこの手が使えません。
 その場合は…、
 といって最初からこのことがわかっていたわけではなく、人のマクロに関する解説を見ていて、最近気がついたことです。
 
 このやり方はとても便利です。

sub a19セル範囲の設定
 Dim セル範囲 As Range
'セル範囲の設定
ActiveCell.Select
bbb = Selection.Address  '初期値として与えるため
Set セル範囲 = Application.InputBox(Prompt:="セル範囲を指定してください", Default:=bbb, Left:=10, Top:=2, Type:=8)
AAA = セル範囲.Address
MsgBox ("設定範囲は  " & AAA & " です")
end sub

 注意点は、Default:=bbb, Left:=10, Top:=2, Type:=8の部分になります。

 Default:=bbb ここでは、アクティブセルの座標を初期値として設定しています。ですから、カーソルをあらかじめ指定範囲の先頭においてください。
 Left:=10, Top:=2 はこのボックスの表示位置の調整です
 Type:=8 セル参照ということです。
【参照】
http://members.at.infoseek.co.jp/t_shun/My_Page/Excel-VBA/vba_page22.htm#InputBox%20%83%81%83\%83b%83h
 
 キーボードでの範囲指定は、Shiftを押しながら矢印キーを動かします。このマクロでは、結果が表示できますので、色々試してみてください。
 
 よく使う操作で、コピーがありますが、今回のマクロを応用すると操作が簡単になります。(全部貼り付けの場合は、形式の設定がないので、通常のキーボードによる操作のほうが早いです)
 コピーの場合、複写元と、複写先の二箇所のセルを指定することになります。
 その範囲をこの命令を二回使い、セルを指定し、コピーの時の操作マクロの記録を組み合わせれば簡単につくれます(貼付けの機能ごとに作る必要がありますが、よく使う、"値と数値の書式形式コピー"と"数式と数値の書式形式コピー"ぐらいつくっておくといいでしょう。よく使うマクロとなりますのでショートカットを設定し、ショートカットで動かしてください)。
 
 範囲を指定してマクロを動かし、二度目だけを今回のやり方にするほうが、操作が早そうです。いろいろ工夫があるところですね。

0 件のコメント: