• ベストアンサー

Excel2003 VBAの計算方法

初歩的な質問で申し訳ありません VBAで計算をするときにセルどうしで計算をしてもいいのでしょうか いちいち変数に変換するのは面倒なので下記のようのしたいのですが たとえば sheets("sheets1").range("b1") = 2 sheets("sheets1").range("c1") = 3 sheets("sheets1").range("a1") =sheets("sheets1").range("b1") + sheets("sheets1").range("c1") or sheets("sheets1").range("a1") = Application.Sum(Range("b1:c1")) やはり Dim a As Integer,b As Integer,c As Integer b = Sheets("Sheets1").Range("b1") c = Sheets("sheets1").Range("c1") a = b + c Sheets("Sheets1").Range("a1").Value = a よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • rukuku
  • ベストアンサー率42% (401/933)
回答No.2

はじめまして #1のmerlionXXさんと同意見です。 エクセルのVBAの場合、セルの値も「変数」として使うことができます。 わざわざ変数に格納しなくても問題のない場合は、セルの参照をそのまま使っても構いません。 セルの値を変数に格納するのは、多分以下の2つ場合がほとんどだと思います。 1.何回使う  →変数に格納しておいた方が、プログラムがスッキリしますし、   間違いも減ります。 2.マクロで書き換える前の値を使いたい  →セルの値が更新されてしまうと、前の値は分からなくなるので、   事前に変数に格納しておく必要があります。 余談ですが、ご質問のマクロなら、以下のようにしても同じ結果になります。 Sheets("sheets1").Range("b1") = 2 Sheets("sheets1").Range("c1") = 3 Sheets("sheets1").Range("a1").Formula = "=B1+C1" Sheets("sheets1").Range("a1") = Sheets("sheets1").Range("a1").Value …".Formula "と".Value"はなくてもEXCELが判断してくれるはずですが念のためつけておきました。

saab8743
質問者

お礼

丁寧な回答ありがとうございますたよく理解ができますた。 回数を使う場合は便利でしょうね余談が参考になります。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

ほかに使いまわすのでなく、一回きりの計算なら別にいちいち変数に入れなくともいいと思いますよ。

saab8743
質問者

お礼

ありがとうございました。 1度しか使わないですのでそのまま行きます。