Excelで注文書を作っています。
毎日1~64品目を50か所ほどに注文していて、取引先毎品目数は毎日変動します。
取引先毎に注文書はシートで別れています。
B2からF10までのセルはタイトルや日付などを入力しています。
B12~C12に品名備考、D12に価格、E12~F12までは備考を入力していきます。
品名、価格の全部のセルには他のexcelブックからの在庫価格等データを呼び出すためのVLOOKUPの計算式が入っていて品名、価格は自動で入力されます。
VLOOLUPで該当しなかったら空欄と表示されるよう設定されています
用紙はA4サイズで1ページ32品目印刷できるように高さを調整しています
33品目以降がある場合に備えて、印刷範囲は80行目までとして2ページ目まで印刷しています
そのためセルが空欄でも罫線だけ印刷されてしまっています
これらを解消するために品名が入っている行までだけを印刷範囲として罫線だけのセルは印刷範囲から除外したいです
画像は仮のデータですが形はこのままです
B15~F80は空欄でも印刷してしまっています
この画像の場合、B2~F14までを印刷範囲とするか、
もしくは44行目以降に商品名がある場合だけ2ページ目を印刷するように設定したいです
何かいい方法はないでしょうか
No.3ベストアンサー
- 回答日時:
続けてお邪魔します。
>注文が0の場合のシートは B12,C12,D12,E12 セルに #N/A と表示されます
こちらを解消するのが先決ではないでしょうか?
極力エラーを出さない数式にすることをおススメします。
実際どのような数式が入っているのかは不明ですが・・・
=IFERROR("VLOOKUP関数","")
といった感じで・・・
※ 別案として、マクロを使わず条件付き書式で罫線を設定してみてはどうでしょうか?
B12セル以降の罫線はすべて消去しておき
B12~F列の適当な行(多めに)範囲を選択 → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に
=$B12<>""
とし → 書式 → 罫線タブ → 好みの罫線を決める!
これでB列にデータがある行のF列までに設定した罫線が入り、その行までが印刷範囲になるはずです。m(_ _)m
=IFERRORを利用することによって、期待した印刷範囲の指定ができるようになりました!
また、条件付き書式でも指定できるようになり、いろいろな状況で使い分けたいと思います。
何度も答えていただき、ほんとうにありがとうございました!!
No.2
- 回答日時:
No.1です。
B列には数式が入っているのですね。
前回のコードはすべて消去し、↓のコードにしてみてください。
Sub Sample2()
Dim i As Long
For i = Cells(Rows.Count, "B").End(xlUp).Row To 12 Step -1
If Cells(i, "B") <> "" Then Exit For
Next i
If i > 11 Then
ActiveSheet.PageSetup.PrintArea = "$B$2:$F" & i
Else
MsgBox "印刷データなし"
End If
End Sub
今度はどうでしょうか?m(_ _)m
まさに望んでいたとおりの範囲指定ができました!
ただ、質問時に間違えて書いてしまったのですが、注文先によっては注文が0の場合がありそのシートにこのマクロを実行したところ
「型が一致しません。」と表示され実行時エラーが出てしまいました。
注文が0の場合のシートは B12,C12,D12,E12 セルに #N/A と表示されます。それより下のすべてのセルは数式が入った空白に見えるセルとなります。
このような場合にエラーを出さないようにするには、どのようにしたらよいでしょうか。
No.1
- 回答日時:
こんばんは!
VBAになりますが、一例です。
とりあえず、B2~F列最終行までを印刷範囲としました。
Sub Sample1()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
ActiveSheet.PageSetup.PrintArea = "$B$2:$F" & lastRow
End Sub
※ B列で最終行を取得しています。
印刷する前にマクロを実行し、印刷プレビューで確認してみてください。
※ B列に数式が入っていて空白に見えるセルがあると、そこも印刷範囲になってしまいます。m(_ _)m
ありがとうございます。
さっそくプレビューで確認してみたところ
備考に書いてくださったように、商品、価格等のB,C,D,E,F列はVLOOKUPの数式が入っていて空白に見えるセルだったため、すべてが印刷範囲になってしました。
数式は無視できるような方法があればよいのですが…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Visual Basic(VBA) マクロについて教えてください。 3 2023/06/09 17:37
- その他(買い物・ショッピング) 商品に印字してあるバーコードについて 3 2022/08/26 10:42
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Excel(エクセル) 請求書と領収書の作成 4 2022/11/10 16:13
- Excel(エクセル) エクセルシートのPDFでの保存 2 2022/09/06 13:05
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報