|
▼本山中 さん:
こんにちは
まず、【考えていたような結果にはなりません。】ということではなく
【こんなおかしな結果になった】と説明されたほうがわかりやすいですねぇ。
さておき、
Range("A2") = takane
Range("B2") = yasune
tanane も yasune も 値は何もセットされていません。(Integer ですから 初期値の 0)
なのに、それを A2 や B2 に格納しますので、A2 も B2 も 0 になります。
やるとすれば
takane = Range("A2").Value
yasune = Range("B2").Value
ですね。
アップされたコードだけ見ると、takane も yasune も必要じゃなく、直接セルの値を
計算で用いればいいのですが、まぁ、それはそれとして。
セルの値を参照する時には、プロパティ Value を明示的に記述したほうがいいかと。
また整数ですけど、Integer型で定義するより、Long型で定義しておきましょう。
Integerにすると、上限が 32,767 になりますよ。それ以上の金額がはいるとエラーになります。
以下に、上で述べたようなことを加味したコードを参考までにアップしておきます。
Sub Sample()
Dim c As Range
Dim yasune As Long
Dim takane As Long
If WorksheetFunction.Count(Range("A2:B2")) = 2 Then 'A2,B2 ともに数値が入った時のみ
takane = Range("A2").Value
yasune = Range("B2").Value
Range("C2").Value = takane - yasune
For Each c In Range("D2", Range("D" & Rows.Count).End(xlUp))
c.Offset(, 1).Value = Range("C2").Value * c.Value
Next
End If
End Sub
|
|