• ベストアンサー

【エクセル】 答えの出ているところまで印刷したい

以前質問させていただいたことで、また困っています。 http://oshiete1.goo.ne.jp/qa4130343.html こういうものを作成し、皆様のおかげでみごと完成したのですが、 前回も言ったとおり、私が作ったものを別の人が使います。 それで、わかりやすい形にして渡してあげたいのですが、 このままでは印刷プレビューにすると計算式が入っているところまで 全部印刷範囲に入ってしまいます。 月によって利用する行数が違うと思うので、 改ページプレビューで固定しておくこともできないのですが どうにか計算式を無視して数値(または文字など)の入った行までだけ もしくはそれが入ったページだけを印刷することはできないでしょうか? ちなみにさらにこちらのワガママなのですが、 シートを月別に分けて、2行目(項目の次の行)に、 「前月繰越金」を表示させたいとのことで、 端の使わない列に印刷されない計算式が入っています。 たとえば、A~H列のみの、値の入っている行まで印刷~のようなことは可能でしょうか? 細かくてすみません。 もし、この細かい設定が無理なら印刷されない計算式は別シートにしますので、 値の入っている行まで自動的に印刷範囲に指定してくれる機能があったらどうか教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • TTak
  • ベストアンサー率52% (206/389)
回答No.3

マクロを使用して、任意の列の数値が表示されている行までを印刷範囲に指定する方法です。H列以降を印刷範囲にしない条件設定もできるようにしています。マクロの実行方法ですが、下記の順序で試してください。 1)ファイル起動 2)[Alt]+[F11]キーでVisualBasicEditor(VBE)を起動 3)VBEのプロジェクトウインドウの  VBAProject(ファイル名)  └ MicrosoftExclObject   ├ Sheet1(Sheet1)   ├ ...Sheet2,3,4   └ ThisWorkbook ←ココを右クリック>[コードの表示] 4)コードウインドウが開いたら、下記のコードを転記 '--ここからコピー Private Sub Workbook_BeforePrint(Cancel As Boolean) ' 任意の列の数値が表示されている行までを印刷範囲に指定 Dim PrLeftUpAdress As String Dim PrRightCulm As String Dim PrArea As String Dim myRow As Integer Dim PrSheet As Integer Dim myCul As String Dim i As Integer '印刷範囲で最も左上のセル PrLeftUpAdress = "$A$1" '印刷範囲で最も右の列 PrRightCulm = "H" '印刷範囲の最下段を判定する列 myCul = "D" '印刷するシート(タブ表示順で左から何番目?) PrSheet = 1 With Sheets(PrSheet)  myRow = .Range(.Cells(.Rows.Count, Range(myCul _    & 1).Column).End(xlUp).Address).Row + 1  For i = myRow To 1 Step -1    If Cells(i, Range(myCul & 1).Column) <> "" _     Then Exit For    Next i  PrArea = PrLeftUpAdress & ":$" _   & PrRightCulm & "$" & i  .PageSetup.PrintArea = ""  .PageSetup.PrintArea = PrArea End With End Sub '--ここまでコピー 5)印刷プレビューで印刷範囲が変わることを確認

pants
質問者

お礼

お礼が遅くなってしまいました。 すごく丁寧な仕事に感激しました。 明日やってみます!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Rin-u_u
  • ベストアンサー率35% (6/17)
回答No.2

印刷範囲の外のセルに(どこでもOKです) ="A1:H"&MAX((A1:H65535<>"")*(ROW(A1:A65535))) と入力し、 配列数式ですので、Ctrl + Shift + Enter で確定させます。 たとえばU1に入力したとします。 Ctrl + Shift + Enterで確定。 そのまま、挿入→名前→定義で、 名前: Print_Area 参照範囲: =INDIRECT($U$1) とします。 →印刷プレビュー

pants
質問者

お礼

お礼が遅くなってすみません。 事務所移転のためにファイルをまったくいじれていないんですが、 明日やってみます! ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • TTak
  • ベストアンサー率52% (206/389)
回答No.1

お望みの方法はVBA(マクロ)を使うことで可能です。 印刷ボタンが押されたタイミングでそのマクロを走らせ、印刷直前に、データ範囲を調べ、印刷範囲を指定するというプログラミングの記述になります。 そのシートを使用する人は、マクロ使用可能な環境でしょうか?補足願います。

pants
質問者

お礼

補足の補足です。 えーと、ちょっと言い方がえらそうかも、ごめんなさい。 ほかに必要な環境があったら教えてください。

pants
質問者

補足

現在マクロ使用可能な環境になっているかどうかはわかりませんが、 デスクは隣なので、私が使用可能な環境にすることは可能です。 確か、マクロのセキュリティで変更するのですよね? そのことをおっしゃっているなら可能です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel 印刷

    Excelの印刷について。 改ページプレビューなどでも解決できていない質問です。 エクセルファイルを印刷する際の問題ですが、 (印刷したい範囲)シートの横幅が広いため、A4の用紙に印刷すると、 少ない行数で印刷されてしまいます。下部の余白が無駄です。 ページ設定などで、拡大縮小しますと、シートの横幅が狭まり、 まとまりのない感じで印刷されてしまいます。 もしくは、文字の大きさが小さすぎます。 適切な行数で、適切な文字の大きさで印刷は不可能でしょうか? よろしくお願いします。

  • エクセル 印刷 行数で

    Excelについて。 印刷をする場合、印刷プレビューやページ設定で拡大縮小印刷など便利な機能・設定がありますが、 エクセルの行数を指定して印刷はできないのでしょうか? 例えば、25行ずつ紙1枚に印刷したい。 印刷したいエクセルの行数が70行であれば、紙3枚になります。 改ページプレビューで手動で行うのは、スマートではない気がしますし、非常に長い行数の場合に困ります。 お手数ですが、よろしくお願いします。 エクセル2010以上

  • Excel印刷範囲について

    例えば印刷範囲をB~H列に指定して、 改ページプレビューで確認してA列が印刷範囲外になっていても、 印刷プレビューで見たらA列も印刷範囲に含まれるし、 実際に印刷しても、A列が入りますよね? 左の何列かを印刷しない方法ってありますか?

  • エクセルについて(office 2003)

    こんにちは。いまさらですが、エクセルについて教えて下さい。 家ではあまり使わないのですが、久しぶりに使おうとしたところ、 なんかヘンなんです。 ページ設定を見ると、100%でなんともないようなのですが、 プレビューで見ると、列はABCの3列、行は22行までという えらい狭い範囲なんです。 エクセル起動時は、印刷の向きがいきなり横設定です。 印刷範囲のクリアも出来ないです。 改ページプレビューにして、範囲を広げると、倍率が下がって しまいます。 オプションを見ても分からないです。 どのようにしたら元に戻るか教えて下さい。

  • EXCEL 複数の印刷範囲毎にページ設定をしたい

    OS:Win XP Pro Office:Excel2002 1シート内に異なる範囲の印刷範囲を設定しました。 改ページプレビューにしてみると、各設定した範囲には「1ページ」「2ページ」と表示されています。 そこで印刷をすると同じ縮尺の表が印刷されます。 ページ設定の「拡大/縮小印刷」は「1×1ページ」に指定してあります。 用紙はA4で横置きなんですが、列が多いページに合わせて尺度が決まるようで、列が少ないページには余白が多くなってしまいます。 出来れば、各ページの尺度は異なっても構わないので出来るだけ1枚に大きく印刷したいのです。 各ページ毎に「ページ設定」が出来れば良いのですが、シート毎みたいです。 同じシート内の別の印刷範囲で、異なったページ設定(用紙サイズや尺度など)は出来ませんか?

  • Excelの印刷範囲が・・・

    いつも通り印刷しようとプレビューを見たら、 突然ページが2枚になっていました。 印刷設定はA4横、拡大/縮小100%、余白は全て0です。 改ページで確認したところ、印刷範囲が 45行目から46行目になっていました。 46行目には何もないので Excel側で印刷範囲を強制的に変えたのでしょうか? 今のところ行った対処法です。 ・印刷範囲のクリア→変わらず ・全ての改ページ解除→変わらず ・46行目全体の削除→変わらず 印刷範囲を45行目に設定すればいいのですが、 この方法だと印刷範囲指定をしたことになります。 お客様に納品するものなので、それはできません。 また、ページを横1×縦1に設定すれば1ページになりますが、 拡大率が98%になってしまいます。 何とか今までのように1ページに戻したいです。 原因にお心当たりの方、回答お願いします。

  • VBAで印刷する行数に合わせて改ページを自動指定

    お世話になります。 表題の通り、VBAにて印刷する行数に合わせて改ページを自動で指定したいのですが、 どうやればよいのでしょうか? 印刷する行数は毎回異なります。用紙はA4横、印刷範囲はA~U列で列は1ページに収めたいです。 印刷タイトルとして、行タイトル"$1:$7"、列タイトル"$A:$U"が指定してあります。 行の改ページは8行目から13行毎に改ページを入れたいです。      例 総行数50行とした場合、       1ページ目:印刷タイトル+行8~行20       2ページ目:印刷タイトル+行21~行33       3ページ目:印刷タイトル+行34~行46       4ページ目:印刷タイトル+行47~行50 どなたか教えて頂けないでしょうか?

  • エクセルで行番号、列アルファベットが印刷されます!

     印刷範囲や改ページプレビューで印刷したい範囲を設定しても、シートの外枠にある行番号、列アルファベットまでが印刷されます。  印刷範囲だけを印刷したいのですが、どのようにすればよろしいのでしょうか。  初歩的なことだとは思いますが、困っております。教えてください。  

  • EXCELで印刷すると同じ列が全部のページに印刷されます

    エクセルで表を印刷しようとしているのですが 左側の3列が全部のページの左側に印刷されてしまいます。 例えば 1ページ目は1列~10列が印刷されるとすると 2ページ目は1列~3列、その横に11列~18列 3ページ目は1列~3列、その横に19列~27列 のようになります。 ウインドウ枠の指定はしていません。 印刷範囲を指定しても同じことになります。 改ページプレビューを使っても同じことになります。 解除の方法を教えていただきたく存じます。 宜しくお願い致します。

  • Excel 印刷

    異なった数値の入った表が同じ形式で10シートに入っております。 1シートに付き、6ページに分かれていますが、印刷したいのは、1と5です。 改ページプレビューで、1シートずつ、青線をドラグして、2ページにしています。 もっと効率の良い方法をご存知の方、教えていただけるでしょうか。よろしく御願いします。

このQ&Aのポイント
  • MFC-685CDNのUtilitiesのインストールができず、機能転送エラーが発生しています。どのような環境で接続しているか、お使いのOSは何かを教えてください。
  • Windows11を使用している環境で、MFC-685CDNのUtilitiesをインストールしようとすると、機能転送エラーが出てインストールできません。無線LANで接続している状況です。
  • ブラザー製品であるMFC-685CDNのUtilitiesをインストールしようとすると、機能転送エラーが発生してインストールできません。お使いの環境はWindows11で、無線LAN接続です。
回答を見る

専門家に質問してみよう