Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Professional : Excel 2010)
消費税計算
投稿日時: 17/12/29 21:41:27
投稿者: rsu

すみません。初心者で全然分からないので教えてください。
 
sheet1
   A  B  C   D   E   F
1 数量 単価 金額 消費税 コード 名称
2  100 1000         111  A売上
3 300 500         112  B売上
4  1000 0
5  200 700
 
別シート(シート名:リスト)
   A   B
1 コード  名称
2  111  A売上
3  112  B売上
4  113  C売上
 
sheet1に上記の表があり、C列に数量×単価(単価がゼロの時は値を入力したら計算される)、
D列に金額×0.08(四捨五入)、E列にコードを入力したらF列に別シートのB列の名称を
表示する式を入れたいのです。
sheet1の行数は決まっていないので行数が多くても少なくても対応出来る様にしたいのです。
説明がへたくそで申し訳ありませんがよろしくお願い致します。

回答
投稿日時: 17/12/29 23:30:38
投稿者: simple

(1)
A,B,E列は入力済みということでよいですか?
 
一般機能でできるような気がします。
・金額と消費税は普通の計算式、
・名称は、VLOOKUP関数で取得
で計算します。
 
計算式の入ったセル(例えばC1)の右下隅にカーソルを置いてダブルクリックすれば、
行の数を自動認識して、必要な数だけ増幅してくれますよね。
D1についても、F1についても同様に実行できます。
 
(2)
どうしてもこれをマクロにするのであれば、
これをマクロ記録とれば、AutoFillを使ったコードが得られます。
 
A列の最終行を
lastRow = Range("A1").End(xlDown).Row
などとして求め、
コード中にある、AutoFillの書込先を修正するとよいと思います。
 
途中まででも結構ですから、トライしてみてください。

回答
投稿日時: 17/12/29 23:34:19
投稿者: WinArrow
投稿者のウェブサイトに移動

一般機能で十分対応できるが、どうしてもVBAなの?
 
まず、C2セルに
=A2*B2
を入力
D2セルに
=ROUND(C2*0.08,0)
を入力
 
C2とD2セルを選択し、D2セルの右下をダブルクリック
・・・
一番下の行まで、数式が複写されます。
 
次に
F2セルに
=VLOOKUP(E2,リスト!A:B,2)
を入力
F2セルの右下をダブルクリック
 

回答
投稿日時: 17/12/30 15:21:50
投稿者: WinArrow
投稿者のウェブサイトに移動

質問の本件とは関係ありませんが、
 
数式の中に「0.08」(消費税率)を組込むのは、考えなおした方がよいです。
消費税率は変わります。その場合、使用している数式を全部探して、全部修正しなくていけません。
数式を修正したら、テストが必要です。
探し漏れ、修正漏れがあったら困りますよね?
 
「置換」という便利なツールもありますが、「0.08」すべてが消費税率とは限らないからばあいもあります。
 
そのようなことから、普通は「消費税率」という名前のセルを用意します。
数式の中では「消費税率」という名前で参照します。
そうすれば、「消費税率」という名前のセルを変更すればよいだけです。

トピックに返信