- ベストアンサー
Excelのマクロについて
どなたか教えてください。 下記のような表があります。 A … J K L A商店 … 1000 B商店 … 2000 行数は毎回不定です。J列は売上(税抜)です。 マクロで K列に消費税の計算式 L列に税込価格の計算式を貼り付けたいと思っているのですが、マクロ初心者のため、うまく出来ませんでした。 どなたかアドバイスを宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
miiko001さま、merlionXXです。 一応、マクロもつくってみました。 Sub test1() Dim lr As Long, i As Long, lc As Range Set lc = Cells(ActiveSheet.Rows.Count, "J") lr = IIf(lc.Value = "", lc.End(xlUp).Row, lc.Row) With Application .Calculation = xlCalculationManual .ScreenUpdating = False Range("K1").FormulaR1C1 = "=IF(ISNUMBER(RC[-1]),ROUNDDOWN(RC[-1]*0.05,0),"""")" Range("L1").FormulaR1C1 = "=IF(ISNUMBER(RC[-2]),RC[-2]+RC[-1],"""")" Range("K1:L1").AutoFill Destination:=Range("K1:L" & lr), Type:=xlFillDefault .ScreenUpdating = True .Calculation = xlCalculationAutomatic End With Set lc = Nothing End Sub
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 Sub PasteFormulas() '数式を貼り付けるマクロ Const CONSTAXRATE As String = "0.05" '税率 Const INCLTAX As String = "1.05" '税込み 'ただし文字列があることを考慮していません。1行目が文字なら、J2になります With Range("J1", Range("J65536").End(xlUp)) '数式は、ご自分で修正してください。 If .Count = 1 Then Exit Sub .Offset(, 1).FormulaLocal = "= TRUNC(" & .Cells(1).Address(0, 0) & "*" & CONSTAXRATE & ")" .Offset(, 2).FormulaLocal = "=TRUNC(" & .Cells(1).Address(0, 0) & "*" & INCLTAX & ")" End With End Sub
お礼
アドバイスありがとうございます。 この方法でもやってみたいと思います。 ありがとうございました。
- merlionXX
- ベストアンサー率48% (1930/4007)
これでなぜマクロが必要なのでしょうか? 単にK1には =ROUNDDOWN(J1*0.05,0) Lには =J1+K1 として、下へドラッグして式をコピーするだけでいいのでは?
補足
merlionXX さま たしかにおっしゃる通りなのです…… が、 この後に、ピボットテーブルを作って、データを加工する部分の マクロの先頭部分に付け足し出来ればよいなと思ったのです。
お礼
merlionXX さま すぐのお返事ありがとうございます。 思っていた通りの結果になりました!! 素晴らしいです。今年度のデータを全て修正しなければならないので、 お陰様で助かりました。 ありがとうございました。