2008年08月15日

不思議なコード

Excel VBAをよく知っている人には常識だと思いますが、次のような書き方ができると気がついたときには、ちょっと不思議な感じがしたものです。

Range("A1").Value = Range("A1").Value

プログラミングそのものを学び始めたときに出会った「x = x + 1」のような書き方も妙な気がしましたが、そのときの感覚に匹敵するかもしれません。

一応分解してみると、「Range("A1")」というのはA1セルを表し、「.Value」はその値。
「=」は、「等しい」を意味する比較演算子ではなく、代入の操作を表す演算子です。
つまり、「A1セルの値をA1セルの値に代入する」という意味になり、一見何もしていないようにも思えます。

さて、このコードは、一体どういうときに使えるものなのでしょうか?



セルに入力されている数式を、その計算結果である値に変換するためのコードです。
コピーして、値だけを貼り付け、という手順よりも、コードとしてはシンプルでスマートになります。

なお、この例ではA1セルですが、もちろん他のセルでもOKですし、セル範囲(複数の領域は不可)を対象とすることもできます。
当然、同一セル(範囲)だけでなく、他のセル(範囲)に代入することも可能です。
posted by 土屋和人 at 06:58| Comment(0) | TrackBack(0) | Excel
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/18002406
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック