こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAの掛け算

お世話になります。
VBA初心者です。

セルA1にはB1×C1の答え
Range("A1").Value = Range("B1") * Range("C1")

これを、B1が空白ならA1も空白に、そうでないならA1にB1×C1の答えを入れたいのですが
分かりません。

Range("A1").Value = "IF(B1="""","""",B1 * C1)"これだと
A1に『 =IF(****** 』と関数が入ってしまいます。

どなたか 分かる方教えて下さい。
宜しくお願いします。

投稿日時 - 2011-11-28 15:45:11

QNo.7159444

すぐに回答ほしいです

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

一例です。

Range("a1") = IIf(Range("b1") = "", "", Range("b1") * Range("c1"))

投稿日時 - 2011-11-28 15:59:28

お礼

IIFの意味が分かりませんがうまく動きました。
後でIIFを調べます。

ありがとうございました。

投稿日時 - 2011-11-28 16:12:40

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

お手本:
A1に =IF(B1="","",B1*C1)

これを元にマクロに翻訳すると:
sub macro1()
 if range("B1")="" then   
  range("A1").clearcontents
 else
  range("A1") = range("B1")*range("C1")
 end if
end sub




#参考:お手本の数式を全くその通りに翻訳すると
sub macro2()
 if range("B1") = "" then
  range("A1") = ""
 else
  range("A1") = range("B1")*range("C1")
 end if
end sub

投稿日時 - 2011-11-28 15:57:42

お礼

ありがとうございます。
range("A1").clearcontentsこんなのがあるのですね。
勉強になります。

うまく動きましたありがとうございます。

投稿日時 - 2011-11-28 16:11:37

あなたにオススメの質問