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

エクセル マクロで印刷

imogasiの回答

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

補足されているように、私の例は、複数シートのニーズにこたえた例示コードでは、なかったですね。  そもそも,質問者のニーズ(普通にやる操作で、どこで面倒に感じているか)が、質問に 明記されていない。 何かこれらの操作をやっているときに、いやになって、イライラして、 ついこの質問コーナーに、うっぷんを出したというような感じです。 想像するに、 (1)複数シートの選択の点 (2)印刷のセットアップの点 の不便を想像します。 (1)は ・シートの指定(操作)の「グループ化」でやればできます。(補足にも書いておられることです) https://support.microsoft.com/ja-jp/office/%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B7%E3%83%BC%E3%83%88%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%99%E3%82%8B-096b40c9-0ee7-4980-bac6-cc92aec7b266 「ワークシートを選択する」 ・たくさんシートがあって、選ぶのが面倒だ。ただし シート名の文字列に特徴がある(例 先頭に、「21年売上」が付いている名から選ぶ。 等なら、VBAで候補を絞って列挙して、選ばせる、などできます。 ーー (2)は、 印刷の設定がバラバラで、指定するのが面倒なら、タイプ別に指定するぐらいのことは VBAでできそうです。あるいはよく変わる項目だけ、VBAのコントロール(部品)で指定するように、できます。 ==== (1)の一例を例示。 シート名の先頭2文字が売上のシート名を、リストボックスのアイテムに出し、印刷希望のシート名を クリックするとそのシートを印刷する。 ページ設定の色色な設定は、組み込んでない。 臭いだけ嗅いでください。 ユーザーフォームに、リストボックス1つと、コマンドボタン1つ貼り付けます。 ーーー ユーザーフォームのモジュールに下記を作る。 Option Base 0 Private Sub CommandButton1_Click() k = 0 ' Dim selSht(0 To 20) As String Dim selSht() As String ReDim seiSht(1) With UserForm1.ListBox1 Dim i As Long For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then MsgBox UserForm1.ListBox1.List(i) ReDim Preserve selSht(i) selSht(k) = UserForm1.ListBox1.List(i) k = k + 1 ListBox1.Selected(i) = False End If Next i End With '---印刷 ページ設定は済みとする MsgBox "印刷します" For i = 0 To k - 1 MsgBox selSht(i) Worksheets(selSht(i)).PrintOut 'Arrat不要 'Sheets(selSht).Select 'Selection.PrintOut Next Application.Quit End Sub ーー Private Sub UserForm_Initialize() ListBox1.MultiSelect = fmMultiSelectMulti For Each sh In Worksheets '--- If sh.Name Like "売上*" Then UserForm1.ListBox1.AddItem sh.Name End If Next ActiveSheet.Select End Sub 面倒なものです。上記も、力不足で、不満足な面があるが、とりあえず。

akira0723
質問者

お礼

何度もお手数を煩わせて申し訳ありません。 確かに要求の動機が抜けています。 要求の背景としては、毎月の月報作成という同じ操作をやっているときに、今まで何も思わずにやっていた作業ですが、他人に引き継ぐことを前提にマニュアルをと思ったら出来るだけ簡単に・・・と思った次第です。 何が面倒か改めて言うと「それ位は都度シートを手動で選択して一括印刷すれば」と言われそうですが。。。 また質問が長がくなるので敢えて割愛した次第です。 面倒だと思う作業は、複数の担当者が各シートに入力するので、シートの内容を明示するためにシート名が長くなってしまうので、印刷時にBook内のシート間をあちこち行き来して探す作業を簡単にと思いました。 目的別に印刷するシートを1ページに目次にしておいて一括選択で印刷出来れば抜けやシート間違いがない。 カラーや両面印刷等の詳細が都度設定出来れば完璧。 その他にも理由があるのですがやはり長くなるので止めます。 これでも十分長い。要領悪くてすみません。 一応コードは試行してみましたが、エラーMsgが出ました。 やはり小生にはハードルが高いご回答のようです。 また、既にほぼ要求を満たしたご回答が有りますのでこれ以上のお手数は無用です。 ありがとうございました。

関連するQ&A

  • エクセルの複数シートの印刷方法

    エクセルの1つのブックに複数のシートがあった場合、その中の選択したシートのみを印刷することは可能なのでしょうか? または、ブック全体を選んで印刷しても、任意のシートは印刷しないようにする方法などあるのでしょうか?

  • エクセルの分割印刷

    エクセル2003の印刷についてなのですが。 1シートで表を作ったのですが、これを任意の範囲を選択して 複数のページに分けて印刷をしたいのでその方法を教えて下さい。 よろしくお願いいたします。

  • エクセルの複数ブックをまとめて印刷したい

    お世話になります。 早速ですが、フォルダ内に複数のエクセルブックがあります。それらのブックには複数のシートがあります。 フォルダー内の複数のブックの複数のシートも含むものを一括印刷したいのですが可能でしょうか? フォルダー内を一括選択し、ファイルの印刷をした場合、 複数のブックを印刷することは可能なのですが、それらにあるはずの複数のシートが印刷されません。 「複数のブックの全てのシートも含むものを一括印刷」したいのですができるでしょうか? よろしくおねがいします。

  • エクセル2000での割り付け印刷について

    エクセル文書をプリントアウトするとき、ブック全体を割り付けで印刷する方法はあるのでしょうか。 1シートにつき、A4・2ページの文書で、全部で約30シートが1つの文書です。 これを、シートごとにA41枚に収まるように印刷したいのですが、割り付けで2ページとし、ブック全体を印刷、というように指定すると、最初のシートだけが割付となり、その後のシートは普通にA4に1ページずつ印刷されます。 複数のシートを選択した状態でやっても、そのとき開いていたページしか割付になりません。 シートごとに開き、プリントアウトするしかないのでしょうか?大変な時間がかかってしまうのですが……。 よろしくお願いいたします。

  • EXCELで複数のシートの印刷の仕方

    教えて下さい。windows98でoffice2000を使用してます。EXCELで複数のシートを5部ずつぐらい印刷したいのですが、思うように印刷されません。教えて下さいm(__)m bookにシートが4枚あります。4枚とも5部ずつ印刷かけたいのですが■印刷設定画面から印刷を「book全体」にして部数を5部にする。■シートを作業グループにして「選択したシート」を選択して部数を5部にする。それぞれ試してみたのですが各シート1枚ずつしか印刷されませんでした。結局分からなくて今は1シートずつ部数を設定して印刷しています。60シートぐらいあるのでとても大変です。何かシートの設定とかあるのでしょうか?教えて下さい。

  • EXCELのマクロでワードファイルを開きたい

    いつもお世話になります。初心者ですのでよろしくお願いします。 WORDで50種類くらいの帳票を作成しました。一つのファイルに50ページあるのではなくて、50のファイルに一つずつ帳票を作成しました。また、EXCELでこれらの帳票の目次を作成しました。これは1枚のシートに50の帳票のタイトルが一覧表となっています。このエクセルの目次シートから必要なタイトルを選択するとそれに該当する帳票のワードファイルが開くようにしたいのですが、マクロでなんとかなりませんでしょうか? EXCEL2000、WORD2000を使用しています。補足、お礼は明日になりますが、よろしくお願いします。 わかりづらい説明で申し訳ありません。

  • 選択した複数ブックのシート1すべてを印刷するには?

    お世話になります。 現在、EXCELにて顧客管理の表を作成しているのですが、ブックの数が顧客人数分の200ほどあります。 それらのシート1に顧客に配布する予約確認表があるのですが、選択した任意のブックのシート1を一度に印刷できないかと思っています。 そこで現在考えている方法は、作成したシート1全体を、外部参照などの方法で新しいブックにリンクさせ、新しいブックにすべての顧客の予約表をいれるのはどうかと考えています。 単なるコピーではダメな理由は、途中で変更があった場合に参照元を変更したら参照先も自動で変更されるようにしたいのです。 これが出来れば通常の印刷のページ指定である程度選択したシートのみ一度に印刷が可能です。 マクロでも結構ですので簡単に全ての参照元のブックのシート全体を新しいブックへ外部参照する方法があれば教えて頂けたらと思います。 もしくは、「指定したフォルダに入っている任意のブックのシート1をすべて印刷する」といったプログラムが出来るならそれでも大丈夫です。 あくまでも目的は任意のブックのシート1を一度に印刷をかけるという事ですので何か良い方法がありましたらお願いいたします。

  • EXCEL マクロ

    エクセルマクロ初心者です。 エクセル2007で、複数選択したセルの合計値・平均値をコピーできないか悩んでいます。作業によって、選択するセルが変わりますので、セル番地の指定をせずにマクロの書くことができますでしょうか。 イメージとしては、複数のセルを選択をしたときに、ステータスバーにオートカルクで表示される合計値・平均値をクリップボードにコピーし、別のセルに結果をペーストする感じ(ペーストする際に合計値・平均値のどちらを貼り付けるか選択できれば尚、良)です。 個人用マクロブックに登録して、不特定ブックで使用したいマクロです。よい方法があれば教えて下さい。

  • エクセルVBA 一覧にあるブックを順に印刷するには

    こんばんは。ブック名の一覧の中から指定したものを順に印刷をしていく方法を教えてください。 D10から下にブック名が書いてあります。 その横(C列)に“印刷”と入力してあるブックのシートすべてを順に印刷をしたいと思っています。 ただし、シート名に「保存」という名前を含んだものについては印刷対象から除きたいというわがままなものなのです。 ブックはすべてマクロ実行のファイルと同じフォルダの中にあります。 これ、可能でしょうか?よろしくお願いします。

  • エクセル上の縦長の表を特定の範囲で複数のシートに分ける方法を教えて下さ

    エクセル上の縦長の表を特定の範囲で複数のシートに分ける方法を教えて下さい。 当方、下請けの仕事でエクセルの資料をお借りしたのですが 同じ表(A4サイズの印刷設定有り)が縦に並んでおり 1シートに10ページから25ページの表があります。 ファイルも7ブックあり、1ブックに2シートのものや、4シート、5シートのブックもあります。 普段は下請けも少なく自社のデータで仕事しているのですが 仕事上、データを更新するのに1日に3、4ページ分の表しか更新しませんし 更新作業の入力も外注に発注しているので、データの確認や 必要な表のページ数を指定して印刷など、非常に手間が掛かってしまいます。 ひとつひとつ切り取り、貼り付けをしていましたがこれも手間が掛かってしまいました。 マクロの知識がないのですが、マクロで解決できないでしょうか。 使用しているのはExcel2003です。 借りた資料の表は1ページが 「9列・31行」のA4縦サイズが縦に繋がって並んでいます。 宜しくお願い致します。