• ベストアンサー

B列にA列の数字をかけた数字を出したい

B列の各行に3(or2or1)を入力をしたらA列の数字に0.3(2なら0.2,1なら0.1) をかけて小数点第一以下は切り捨てをするマクロを組みたいのですができません。 例  A5に4581と入力されていてB5に3と入力をしたらB5が1374と変換される ようにしたいです;どのようなマクロを組めばよいでしょうか。。。 環境はWINDOWSVISTAのEXCEL2007ですm(__)m

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

>B列の各行に3(or2or1)を入力をしたらA列の数字に… シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range)  dim h as range  on error resume next  for each h in application.intersect(target, range("B:B"))   if h.value = 1 or h.value = 2 or h.value = 3 then    application.enableevents = false    cells(h.row, "A") = application.rounddown(cells(h.row, "A") * h * 0.1, 0)    application.enableevents = true   end if  next end sub ファイルメニューから終了してエクセルに戻る A列に数字を準備し、B列に1か2か3を記入する。

kokorororo
質問者

お礼

keithin様! ご回答ありがとうございます♪ すごいです。。。これで計算式をファイルにいれなくても 自動で変換してくれます(´;ω;`) 1~3以外の数字を入れたらそのまま表示してくれるし完璧です。 本当に感謝いたします!

その他の回答 (2)

  • DarkMoon
  • ベストアンサー率21% (225/1046)
回答No.2

マクロではなくIF関数を使った例です。 VISTA+EXCEL97で確認しました。 C5セルに =IF(B5=3,A5*0.3,IF(B5=2,A5*0.2,IF(B5=1,A5*0.1,""))) と入力してください。コピペでもいいです。 これで、A5セルに計算対象、B5セルに3,2,1を入力すると C5セルに演算結果が出ます。 これで、あとはC5セルをオートフィルするだけで何行でもイケます。

kokorororo
質問者

お礼

ご回答ありがとうございます! 確かにこれでいけそうです! 感謝しますm(_ _)m

回答No.1

マクロじゃなきゃダメっすか? E=AxBx0.1の関数入れて整数表示 で済むような・・・

kokorororo
質問者

お礼

ご回答ありがとうございます。 何分データ量が多いもので。。計算式をいれていると 大変なことになります。。

関連するQ&A

専門家に質問してみよう