• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA初心者です)

エクセルVBA初心者のための印刷マクロと消費税計算についての質問

このQ&Aのポイント
  • エクセルVBA初心者が印刷マクロを作成したいです。印刷ボタンを押すと、印刷範囲を指定させるダイアログが表示され、プレビュー画面が開きます。
  • エクセルの出納帳で品名に「消費税」と入力すると、金額の列に自動的に「税額」を表示させる方法を知りたいです。納品書によって品名数が異なるため、簡単な数式では対応できません。
  • エクセルVBAの初心者ですが、印刷マクロと消費税計算に関してアドバイスをいただきたいです。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

後半の回答 (A) (B)  (C)  2月3日 a 2000 b 3000 s 250 2月4日 a 300 d 200 s 25 2月5日 a 1000 s 50 のように入力します。 B列は品名とs(消費税を示す符牒とする。消費税と入れるのは面倒くさいからsで略す。どんな文字語句なんでもよいわけです。)を入れる列、C列には金額を入れる。 sをB列に入力すると自動的に、前の行(=上の行)のsが現われる行(上例では第3行目まで)の次行(4行目)までの金額の和(すなわち第4行と第5行金額)の5%をsの列の隣列にセットします。 ワークシートのChangeイベントプロシジュアーとして、下記をコピーし貼りつけてください。 入力作業がおわってから、B列だけsを「消費税」に「置換」操作をされるのが良いと思います。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then If Target.Value = "s" Then st = 0 ' MsgBox Target.Row For i = Target.Row - 1 To 1 Step -1 If Cells(i, 2) = "s" Then Exit For st = st + Cells(i, 3) Next i ' MsgBox st Cells(Target.Row, 2 + 1) = Int(st * 0.05) End If End If End Sub 少数例でテスト済み。

ku-man
質問者

お礼

早速のお答えありがとうございました。なんとなく思い描いていた方法にピタリと一致していて、それをVBAで記述することができず悩んでいたのです。まだまだ私には高度過ぎるテクニックですが、とても勉強になり、とても役立ちそうです。ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

#1のものです。前半の質問について。 印刷用にコマンドボタンを1つ貼りつける。 Clickイベントに Private Sub CommandButton1_Click() PrintPreview End Sub ボタンをクリックすると、プレビュー画面になるから、「改ページプレビュー」をクリックして、印刷範囲指定するではダメでしょうか。

ku-man
質問者

お礼

何度もお答えいただき、ありがとうございます。考えていたものは、「印刷ボタンを押す」→「”印刷範囲を指定してください”」というダイアログでる」→「印刷範囲をドラッグする」→「印刷プレビュー画面がでる」というものです。RefEditコントロールを使ってやればいいような気がするのですが、なんせ初心者なもので、何をどう記述すればいいのかわからないでいるのです。もう少し自力で頑張ってみて、まだムリなようならまた改めて質問させていただこうと思います。ありがとうございました。

  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.2

>エクセルVBAを使った印刷マクロを組みたいと思います。 >印刷ボタンを押すと、印刷範囲を指定させるダイアログが表示され、 >範囲をドラッグ(指定)後、プレビュー画面が開くようにしたいのです。 マクロは必要ありません。 一般機能にあります。 印刷範囲を選択します → ファイル → 印刷 →  印刷対応を「選択した部分」にチェック → 印刷プレビュー

ku-man
質問者

お礼

それは、わかるんです。VBAを使いたいんです。

関連するQ&A

専門家に質問してみよう