• ベストアンサー

Excelのマクロについて

どなたか教えてください。 下記のような表があります。 A   …   J   K   L    A商店 …  1000    B商店 …  2000 行数は毎回不定です。J列は売上(税抜)です。 マクロで K列に消費税の計算式 L列に税込価格の計算式を貼り付けたいと思っているのですが、マクロ初心者のため、うまく出来ませんでした。 どなたかアドバイスを宜しくお願い致します。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.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

miiko001
質問者

お礼

merlionXX さま すぐのお返事ありがとうございます。 思っていた通りの結果になりました!! 素晴らしいです。今年度のデータを全て修正しなければならないので、 お陰様で助かりました。 ありがとうございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 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

miiko001
質問者

お礼

アドバイスありがとうございます。 この方法でもやってみたいと思います。 ありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

これでなぜマクロが必要なのでしょうか? 単にK1には =ROUNDDOWN(J1*0.05,0) Lには =J1+K1 として、下へドラッグして式をコピーするだけでいいのでは?

miiko001
質問者

補足

merlionXX さま たしかにおっしゃる通りなのです…… が、 この後に、ピボットテーブルを作って、データを加工する部分の マクロの先頭部分に付け足し出来ればよいなと思ったのです。

関連するQ&A