VBAの話。variant型で宣言した変数の中にセル範囲を代入すると、以後そのvariant型変数は二次元配列としてそのセル範囲に入っていた値や文字列を扱うことができます。
これ、ワークシート上の値を一気に、それもお手軽にプログラム上のメモリとして格納することができるので、わたしはかなり多用させてもらっているテクニックなのですが、
今日、ちょっと罠にハマりかけそうな出来事がありまして…。
↓①のように記述すると、①はその後二次元配列として扱うことができる-。と一瞬思いがちなんですけど、ちょっと考えてみればそうではないんですよね…。
①は、ようは②と同じことをいっているわけだからただ単純にセルa1の値をvariant型変数vへ代入しただけ…。
私が作成中のプログラムで記述したコードは、実際にはa1:a1の部分は変数だったから、少しの間気付かなくて罠にハマりかけていた、というわけなんですわ…orz。
このテクニック、かなり便利なのでわたしは色々な場面で多用させてもらっているんですけど、それでもきちんと「本質」はとらえて利用しないといけないですね…(>_<)。
①
v = range("a1:a1")
②
v = range("a1")
これ、ワークシート上の値を一気に、それもお手軽にプログラム上のメモリとして格納することができるので、わたしはかなり多用させてもらっているテクニックなのですが、
今日、ちょっと罠にハマりかけそうな出来事がありまして…。
↓①のように記述すると、①はその後二次元配列として扱うことができる-。と一瞬思いがちなんですけど、ちょっと考えてみればそうではないんですよね…。
①は、ようは②と同じことをいっているわけだからただ単純にセルa1の値をvariant型変数vへ代入しただけ…。
私が作成中のプログラムで記述したコードは、実際にはa1:a1の部分は変数だったから、少しの間気付かなくて罠にハマりかけていた、というわけなんですわ…orz。
このテクニック、かなり便利なのでわたしは色々な場面で多用させてもらっているんですけど、それでもきちんと「本質」はとらえて利用しないといけないですね…(>_<)。
①
v = range("a1:a1")
②
v = range("a1")