- ベストアンサー
B列にA列の数字をかけた数字を出したい
B列の各行に3(or2or1)を入力をしたらA列の数字に0.3(2なら0.2,1なら0.1) をかけて小数点第一以下は切り捨てをするマクロを組みたいのですができません。 例 A5に4581と入力されていてB5に3と入力をしたらB5が1374と変換される ようにしたいです;どのようなマクロを組めばよいでしょうか。。。 環境はWINDOWSVISTAのEXCEL2007ですm(__)m
- みんなの回答 (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を記入する。
その他の回答 (2)
- DarkMoon
- ベストアンサー率21% (225/1046)
マクロではなく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セルをオートフィルするだけで何行でもイケます。
お礼
ご回答ありがとうございます! 確かにこれでいけそうです! 感謝しますm(_ _)m
- ryo_ Deathscythe(@Deathscythe)
- ベストアンサー率14% (515/3615)
マクロじゃなきゃダメっすか? E=AxBx0.1の関数入れて整数表示 で済むような・・・
お礼
ご回答ありがとうございます。 何分データ量が多いもので。。計算式をいれていると 大変なことになります。。
お礼
keithin様! ご回答ありがとうございます♪ すごいです。。。これで計算式をファイルにいれなくても 自動で変換してくれます(´;ω;`) 1~3以外の数字を入れたらそのまま表示してくれるし完璧です。 本当に感謝いたします!