幼稚園時代「何組」でしたか?

VBAで手仕事の計算式を作っているのですが・・・・・・

If dif <> 0 Then
hme1 = Str(ddan * 2) + " " + Str(dif)
Range("_TDIF").Item(i).Value = hme1
ddan = 0
End If
2行目の(ddan * 2)として、偶数ddanにするために2倍にしたのですが、数値が1の場合は1のままで、
その他は2倍にする方法を教えてください。
よろしくお願いします。

A 回答 (5件)

hme1 = Str(iif(ddan=1,1,2*ddan)) + " " + Str(dif)


とかでしょうか。
    • good
    • 0
この回答へのお礼

早速に回答を頂き有難うございました。
お陰さまで思ったように解決致しました。

又の質問の時にはよろしくご指導くださいませ。

お礼日時:2011/04/22 23:29

Sub test03()


For i = 1 To 7
If i = 1 Then
Cells(i, "B") = 1
Else
Cells(i, "B") = i * 2
End If
Next i
End Sub
のような、IFステートメントで場合を分けるのはダメなのですか。質問の意味、わざわざ聞く意味がわからない。
1行で書く既に回答に出ているIIFや
Sub test02()
For i = 1 To 7
Cells(i, "A") = (i = 1) * -1 + (i > 1) * -2 * i
Next i
End Sub
もあるが上記は出来るというだけ。
>VBAで手仕事の計算式を作っているのですが・
の意味も良くわからない。質問に書く必要あるのかな
    • good
    • 0

if ddan=1 then


hme1="1"
else
hme1 = Str(ddan * 2) + " " + Str(dif)
end if


ということでしょうか
    • good
    • 0

整数…ですよね。



アルゴリズムとしては、
 全部の数字を2倍にする
 2倍にした数字が2ならば1に置き換える
で良いと思いますがどうでしょう。
    • good
    • 0

If dif <> 0 Then


hme1 = Str(ddan * Iif(dif = 1 ,1,2)) + " " + Str(dif)
Range("_TDIF").Item(i).Value = hme1
ddan = 0
End If

または

If dif <> 0 Then
If dif = 1 Then
hme1 = Str(ddan) + " " + Str(dif)
Else
hme1 = Str(ddan * 2) + " " + Str(dif)
End If
Range("_TDIF").Item(i).Value = hme1
ddan = 0
End If
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!