• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル・見積表の抽出印刷方法?その3)

エクセル・見積表の抽出印刷方法

このQ&Aのポイント
  • エクセルで作成した見積表の数量を入力した行のみを印刷する方法についてお聞きした者です。商品によっては手で入力する必要があるため、事前に空白行を設けたいが、抽出時に空白行も一緒に抽出されてしまう問題が発生しています。
  • 問題となっているのは、抽出した際に空白行も表示されてしまうことです。空白行も非表示にする方法についてお知りになりたいです。
  • 提供されたVBAコード例では、空白行の非表示ができないことが問題として挙げられています。空白行も非表示にする方法についてアドバイスをいただきたいです。

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

  • ベストアンサー
  • kukkychan
  • ベストアンサー率12% (23/190)
回答No.1

こんにちわ! なぜそのような動きをするかというと 一番上の行から順番に1行づつチェック をして、項目欄が空白になった時点で 処理を終了するロジックになっているからです。 もしあらかじめ空白行を使用するのであれば ロジックの上から5行目 If Worksheets("Sheet1").Cells(i,1).Value=""Then を If Worksheets("Sheet1").Cells(i,6).Value=""Then に変更すれば大丈夫だと思います。 (6列目が金額欄なんですよね?) または、 行を追加するボタンを作成してはどうでしょうか? 行削除もついでに作っておくと便利かもしれません。 ボタンの作成の仕方は前回と同じです。 1.ツールバーの  三角定規と定規と鉛筆のボタンを押して  編集モードにして下さい。 2.「行追加」「行削除」  をそれぞれボタン追加してください。  (前回追加したボタンの横がいいと思います。) 3.「行追加」ボタンをダブルクリックして  下さい。  そうすると下記の記述が出ると思います。  Private Sub CommandButton3_Click()  End Sub  その間に下記を追加します。  Private Sub CommandButton3_Click() Dim i As Integer Selection.EntireRow.Insert i = ActiveCell.Row Cells((i - 1), 6).Copy Destination:=Cells(i, 6)  End Sub  上記の処理の意味はアクティブ行  に行を挿入し、6列目を金額と仮定  して、1行前の列の金額欄をコピー  し、挿入した行の金額欄に貼り付ける  事によって、合計算出計算のみコピー  している。 3.「行削除」ボタンをダブルクリックして  下さい。  そうすると下記の記述が出ると思います。  Private Sub CommandButton4_Click()  End Sub  その間に下記を追加します。  Private Sub CommandButton4_Click() Selection.EntireRow.Delete  End Sub  上記の処理はアクティブ行  削除している。 以上で行追加、行削除ボタン完成です。 ただし、合計の直前と見出し行の直下に 行を追加すると、合計の金額のSUMの 範囲外となってしまうおそれがあるので 気をつけましょう!