• ベストアンサー

エクセル 印刷マクロ

Win XP /エクセル2003 使用です。 エクセルで請求書を作成しています。 1件の請求書に1行目から100行目を使用し、 2件目は、101行目から200行目、 3件目は、201行目から300行目・・・を使用しています。 現在、印刷する時は、一枚一枚、 「印刷範囲を指定」して出力しているのですが、 これをマクロまたはVBAのボタン機能を使って、 印刷できるようにしたいのですが、 何か良いサンプルなどはありますでしょうか? よろしくお願いいたします。

  • ken123
  • お礼率73% (299/409)

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

私は、頭が悪いのでしょうか、質問が良く分かりません。一体、どうしたわけでしょうか? 印刷範囲を指定しないでも良いようにしたいのか、#2さんのマクロのように、印刷範囲を、マクロで指定したいのでしょうか?それとも、1件目、2件目というように別けたいのでしょうか。 #1さんのご指摘のように、1ページを100行に指定すれば良いわけですが、それだとかなり小さくなりますね。100%の倍率で、せいぜい50行前後ですから。 縮小せずに、1件目と2件目の間を別けたいなら、100行目の所に、ページ改行すればよいと思います。タイトルを切り分けるならマクロが必要になるように思いますが。

ken123
質問者

お礼

Wendy02 さま 早速のご回答ありがとうございました。 返事が大変遅くなり申し訳ございません。 こちらの質問の仕方が悪く大変申し訳御座いませんでした。 なんとか解決いたしました。 今後ともよろしくお願いします。

その他の回答 (2)

  • crossgate
  • ベストアンサー率65% (78/119)
回答No.2

VBAで書くならこんなところ。 --------------------------------------- '印刷する行数 Private Const PRINT_LINE = 100 '指定できる最大件数(暫定値) Private Const MAX_CNT = 500 Sub Macro1() On Error GoTo EXIT_SUB      Dim kensuu As Integer   Dim bkrow, bkcol As Long   '現在のセル位置の保存(複数セルを選択しているケースは考慮外)   bkrow = ActiveCell.Row   bkcol = ActiveCell.Column   '何件目を印刷するか指定させる   kensuu = Application.InputBox("何件目を印刷しますか?", "印刷件数指定", , , , , , 1)   '指定した件数の範囲チェック   If kensuu <= 0 Or kensuu > MAX_CNT Then     '件数が0の場合は「キャンセル」かもしれないので、     '0以外の場合だけメッセージ出力     If kensuu <> 0 Then       MsgBox "件数が範囲外です。", vbOKOnly + vbExclamation     End If     GoTo EXIT_SUB   End If   '画面更新の抑止設定   Application.ScreenUpdating = False      '指定した行数を選択して印刷(標準プリンタ使用)   Rows(((kensuu - 1) * PRINT_LINE + 1) & ":" & (kensuu * PRINT_LINE)).Select   Selection.PrintOut Copies:=1, Collate:=True   'セル位置の復元   Cells(bkrow, bkcol).Select    EXIT_SUB:   '画面更新の抑止解除   Application.ScreenUpdating = True   Exit Sub End Sub

ken123
質問者

お礼

crossgate さま 早速のご回答ありがとうございました。 返事が大変遅くなり申し訳ございません。 コードまでご教授いただきありがとうございました。 なんとか解決いたしました。 今後ともよろしくお願いします。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

1ページに100行を印刷するようにページ設定を行うことをお勧めします。 必要なら、ページ設定で、一行目をシートの行のタイトルにしては。

ken123
質問者

お礼

aokii さま 早速のご回答ありがとうございました。 返事が大変遅くなり申し訳ございません。 ご指摘の通りちょっと難しく考えすぎていたようです。 なんとか解決いたしました。 今後ともよろしくお願いします。

関連するQ&A

  • Excelでのラベル印刷

    EXCELに入力されている顧客情報からWORDの差し込み印刷機能を利用してラベルを作成したのですが、使用する人達がパソコンをあまり使い慣れていない人達なので、出来ればEXCELからボタンひとつで作成出来るようにしたいと考えています。 その時に、1件をラベルすべてに印刷したり、ラベルの位置(何行目何列)を指定したり出来るといいという事なのですが、こういう事は可能でしょうか? VBA、マクロを使用して出来るのであればそれでもよろしいのでお願いします。

  • エクセルマクロで印刷範囲の設定

    エクセルのsheet1に表があります。 この表を印刷ボタンを押すだけで印刷できるようにしようと思います。データの最後の行までのページを印刷できるようにするマクロを教えてください。 ちなみに、今ある最後のデータより下の行もずっと罫線が引いてあります。 また、印刷だけだったら普通に 印刷>ページの指定 でできるよと思われるかもしれませんが、その他の機能もマクロでつくっている最後の段階なのでマクロでお願いいたします。 分かりにくい文章ですがよろしくお願いします。

  • EXCELのマクロで、モノクロ印刷ボタンを作りたい

    EXCELで、誤ってカラー印刷するのを防ぐため、 「印刷ボタン」を「モノクロ印刷ボタン」に変更したいと思っています。 モノクロ印刷マクロを作って、ボタンに登録しようと思ったのですがうまくいきません。 マクロでは、プリンタドライバ機能を指定することはできないのでしょうか。 せめて、プリンタオプション画面を開くマクロは作れないでしょうか? ご回答、よろしくお願い致します。

  • エクセルでマクロをツールバーに置けませんか?

    エクセルで範囲指定して印刷を 範囲指定は自由にしてからマクロボタン一発で 指定した範囲の印刷実行までをしたいのですが・・・ ツールバーに置ければいいんじゃないかなと考えたんですが いつでもどのファイルを開いても利用できるようにどこを範囲指定してもその後が一発で出来るというようにしたいのですが 宜しくお願いします。

  • マクロで自動印刷

    マクロを使用して印刷を行う場合の マクロを教えていただけないでしょうか? 1つのエクセルブックに、 『あ』と『い』と『う』の3個のシートがあります。 それぞれ印刷範囲設定済みです。 マクロボタンをすでに作成済みで ・ シート『あ』と『い』と『う』印刷ボタン ・ シート『あ』と『い』印刷ボタン ・ シート『う』のみ印刷ボタン があります。 それぞれのボタンの、マクロを教えていただけないでしょうか。 宜しくお願いいたします。

  • エクセルのマクロ機能について

    もう一度 助けてください エクセルの集計表である列の移動 並べ替えをエクセルのマクロ機能でつくりました ボタンを押すだけで うまくいっていたのですが データーが増え行を増やそうと 前のマクロを削除して また最初から作ろうとしたところ 記録できません 静的変数が64KBを超えたとかでます 編集 削除しようにも実行とキャンセルしか使えません いろいろほん(VBA)を見ましたが 私のレペルでは100年無理です 簡単なエクセルのマクロにも 範囲があるんですか あるひとつのシートだけマクロを残しています 手作業の集計や決まった作業はたいへんです

  • エクセルでのマクロ作成

    エクセルで作成したボタンをクリックすると以下の事を行うマクロを作りたいと思っています。 (1)最初に貼り付けたいセルの範囲をドラッグで選択する。(手動) (2)マクロを登録したボタンを押す。 (3)マクロ内で指定したセル(たとえば $A$1)をコピーして、(2)でボタンを押してマクロを実行する前に(1)で選択したセルの範囲に貼り付ける。 VBAが分からないので難儀しています。 宜しくお願いします。

  • 印刷マクロを教えてください。

    マクロは初心者です。よろしくお願いいたします。 エクセルで、列AからHまでにデータを入力しています。 また、Aの1から、Aの3までは行タイトルとしています。 列A4から下の行にNo1~の順番号をいれていますが、 例えばNo20からN045までのデータ分だけを印刷したい時など、指定したNoの範囲のデータだけを印刷出来るようなマクロがあれば教えてください。 印刷Noの指定は、行番号でもかまいません。 これまでの質問で印刷関係をみてみましたが、多すぎてわかりませんでした。どなたかよろしくお願いいたします。

  • エクセル2010での同じシート内の印刷について

    エクセルを使いこなせていないため、説明がわかりづらいと思いますが 解決方法をご存知の方、お願いいたします。 エクセル2010を使用して、請求書を印刷しています。 同じシートに同じ形の請求書を30枚ほど下に続いています。 印刷したら、同じ請求書が印刷されます。 請求書には何もデータがない行が10行あり、それで1枚の請求書として印刷できるようになっています。 ところが請求書が1枚増えたため、同じ請求書の範囲で行コピーして 請求書の3枚目と4枚目の間に挿入したら、その3枚目から印刷範囲がずれてしまいました。 3枚目の請求書にさらに何行か挿入しないと同じ印刷ができません。 もしかして印刷範囲とか設定されていたかもしれませんが、 どのようになっているか全くわかりません。 行を追加せず、印刷できる方法はあるでしょうか? 宜しくお願いいたします。

  • エクセルの印刷指定

    お世話になります。 エクセルのシートが10枚あるとします。 Sheet1の名前は「指定表」Sheet2以降は「1枚目・・・9枚目」と変更してあります。 VBAで「指定表」のA1に「1」と入力しマクロの登録ボタンを押すと、「1枚目」が出力され、以下「2」と入力し登録ボタンを押すと「1枚目」と「2枚目」が出力される、「3」なら「1~3枚目」が出力される。 と言うように入力された数値の値のシートの枚数が出るようなマクロをご教示ください。

専門家に質問してみよう