• ベストアンサー

エクセルで税抜き価格を入れて自動的に税込み価格に変換させたい

エクセルでセルに税抜き価格を入力したら、自動的に税込価格に 変換されるようにするにはどうすればいいのでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.6

こんにちは。 補足質問の件ですが、こういう意味です。 Private Sub Worksheet_Change(ByVal Target As Range)  Application.EnableEvents = False  If Target.Address = "$B$2" And IsNumeric(Target.Value) Then   Target.Value = Int(Target.Value * 1.05)  End If  Application.EnableEvents = True End Sub このコードを以前の解説に従って貼り付けてください。 (注意) この例では、B2セルに値を入れた場合のみ税率をかけるように 記述されています。 余談ですが、 もし、B列のどのセルでも税率計算したい場合は、 Target.Address = "$B$2" の部分を、例えば Target.Column = Range("B1").Column に置き換えてください。 以下は、税率なども変数にした場合です。 興味があれば参考にしてください。 Private Sub Worksheet_Change(ByVal Target As Range)  On Error GoTo ErrorTrap  Dim TaxRate As Single  Dim Col As String  TaxRate = 5   '税率5%  Col = "B"    'B列に適応  If Selection.Count > 1 Then Exit Sub  Application.EnableEvents = False  If Target.Column = Range(Col & 1).Column And IsNumeric(Target.Value) Then   Target.Value = Int(Target.Value * (100 + TaxRate) / 100)  End If  Application.EnableEvents = True  Exit Sub ErrorTrap:  Application.EnableEvents = True  MsgBox "エラー番号:" & Err.Number  Resume Next End Sub

westriver
質問者

お礼

この度はとても親切に教えていただきまして ありがとうございました。 結局B列に適応できるようにコードを貼り付けましたら 無事にできました。 本当に助かりました。

その他の回答 (5)

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.5

どなたも追加回答されないようなので、 横やりの私が回答します。 1)下のシート名のタブの上で右クリック 2)「コードの表示」をクリック 3)左側のプロジェクトエクスプローラーで、   VBAProjectの中に複数のシートがあると思いますが、   今、自動で税込価格を表示させたいシートをダブルクリック  (プロジェクトエクスプローラーが表示されていなければ、   上部の「表示」メニューから選択表示できます。) 4)右側にコードを貼り付けます。   実行は、税抜き価格を入力確定すれば自動的に行われます。 コードは#1のmshr1962さんのものをコピーされると思いますが、 #3のzap35さんの指摘のように、 Application.EnableEvents = False  処理の記述 Application.EnableEvents = True を追加したほうが良いと思います。 これを記述しておかないとイベントが多重に発生し、 無限ループに陥る可能性があります。 この説明で分からなければ追加で補足してください。

westriver
質問者

補足

丁寧に教えていただいてありがとうございます。 1)から4)までコードを貼り付けるところまではできたのですが、 その後に Application.EnableEvents = False  処理の記述 Application.EnableEvents = True の追加ですが、どの部分の後に記述すればいいのでしょうか? 処理の記述も入れるのでしょうか? 本当に何も知らないのにマクロを使おうとするものだから・・・ 申し訳ありませんが、またよろしくお願い致します。

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.4

こんにちは。 回答は既に出ています。 質問とは直接関係ない余談ですが、 消費税は今後上昇する可能性があります。 税率5%は、変数(またはセル絶対参照)にしておいた 方がいいですよ。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

>自動的に税込価格に変換されるようにする とは入力したセルの値を直接1.05倍するのですか? それとも別のセルに表示するのでも良いですか? 後者であればA1に税抜き額を入力して =ROUND(A1*1.05,0)  小数点以下1位を四捨五入 =ROUNDDOWN(A1*1.05,0)  〃  を切り捨て で求めることができます 前者であれば#01さんの言われるようにマクロが必要になります。 ただ#01さんのマクロには、2行追加がいるかもしれません Application.EnableEvents = False  処理の記述 Application.EnableEvents = True

westriver
質問者

補足

ご回答ありがとうございます。 入力したセルの値を直接1.05倍にするほうですので マクロを使えばできるのですね。 でもマクロの使い方がわかりませんので 困っています。

noname#204879
noname#204879
回答No.2

=ROUNDDOWN(A1*1.05,0)

westriver
質問者

補足

ご回答ありがとうございます。 他の方の回答からマクロを使えばできるそうですが マクロの使い方がわかりませんので 困っています。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

VBAを使えば可能ですが... 例:B2に数値が入力されたら、消費税5%を付加するマクロです。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$2" And IsNumeric(Target.Value) Then Target.Value = Int(Target.Value * 1.05) End If End Sub

westriver
質問者

補足

ご回答ありがとうございます。 マクロを使えばできるのですね。 でもマクロの使い方がわかりませんので 困っています。