|    | 
     ▼UO3 さん:感謝いたします。 
      ありがとうございました。 
>▼本山中 さん: 
> 
>こんにちは 
> 
>まず、【考えていたような結果にはなりません。】ということではなく 
>【こんなおかしな結果になった】と説明されたほうがわかりやすいですねぇ。 
> 
>さておき、 
> 
> 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 
 | 
     
    
   |