ひさびさの感動
今日は書く事が多いなぁ・・・・。*1
とりあえず、今日の発見(そこ!今更とか言わないように!!)はEXCELマクロ(VBA)で発見した痒い所に手の届く小技です。
obj = Range("A1:E1")
とすると、A1〜E1の値がobj変数に配列で保持されます。*2
そして、
obj = Range("A1:E1")
Range("A5:E5")=obj
とすると、obj変数の内容が一気にA5〜E5に入ります。
この技はめんどくさい処理解消にききました!
obj = Range("A1:E1")
Range("A5:B5")=obj
のように、obj変数よりも少ない範囲にデータを入れようとすると、途中まで*3反映されます。
また、
obj = Range("A1:E1")
Range("A5:A7")=obj
のようにすると、A5〜A7にA1の値が入ります。
この例の場合、obj変数は1行なのに反映先は3行なので同じ値が複数行に入ると思われます。*4
あと、
obj = Range("A1:E1")
Range("A5:J5")=obj
とすると、A5〜E5は「Range("A5:E5")=obj」と同じ内容になりますが、F5〜J5の値はN/Aになります。*5
次の技はこれ!
Range("A1:E1").Offset(1, 0).Select
と記述すると、A2〜E2が選択されます。
Range("A1:E1").Offset(0,1).Select
と記述すると、B1〜F1が選択されます。
なにが?と思われた方もいると思いますが、Range()にて範囲選択した時にOffsetを使うなんて今まで思いもよらなかった私としては驚愕でした。
すばらしっこい!!!この2つの発見と今までの経験値をあわせて作成した今日のVBAプログラムは・・・
今日のところは最高の出来!ですネ。(間違いなく・・・)
まぁ、こういう事は自画自賛しないと誰も褒めてくれないからね♪
v(^皿^*)