Excel VBAをよく知っている人には常識だと思いますが、次のような書き方ができると気がついたときには、ちょっと不思議な感じがしたものです。
Range("A1").Value = Range("A1").Value
プログラミングそのものを学び始めたときに出会った「x = x + 1」のような書き方も妙な気がしましたが、そのときの感覚に匹敵するかもしれません。
一応分解してみると、「Range("A1")」というのはA1セルを表し、「.Value」はその値。
「=」は、「等しい」を意味する比較演算子ではなく、代入の操作を表す演算子です。
つまり、「A1セルの値をA1セルの値に代入する」という意味になり、一見何もしていないようにも思えます。
さて、このコードは、一体どういうときに使えるものなのでしょうか?
セルに入力されている数式を、その計算結果である値に変換するためのコードです。
コピーして、値だけを貼り付け、という手順よりも、コードとしてはシンプルでスマートになります。
なお、この例ではA1セルですが、もちろん他のセルでもOKですし、セル範囲(複数の領域は不可)を対象とすることもできます。
当然、同一セル(範囲)だけでなく、他のセル(範囲)に代入することも可能です。
2008年08月15日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/18002406
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/18002406
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック