• 締切済み

マクロで印刷頁を設定する方法はありますか?

エクセルのワークシートに【印刷シート(全5頁)】があるのですが、 この印刷シートの各頁の指定行をみて、空白でなければ該当頁を印刷するマクロは存在するのでしょうか? 具体的に申し上げれば以下のようになります。  1頁目→必ず印刷  2頁目→セルA20が空白でなければ1・2頁を印刷  3頁目→セルA40が空白でなければ1~3頁を印刷  4頁目→セルA60が空白でなければ1~4頁を印刷  5頁目→セルA80が空白でなければ全頁印刷 条件分岐IF THEN を使うのかとは思うのですが、複雑になると 全くマクロが組めないぐらい初心者です。 どなたかご教授いただけると助かります。 よろしくお願いします。

みんなの回答

回答No.1

http://www.rondebruin.nl/print.htm#odd 偶数のページ、または奇数のページのどちらか一方を印刷するコード。 ActiveSheet.PrintOutで一ページずつ印刷しているね。 セルの値さえ取れれば簡単そうだ。 で, ここに出てくる, Application.ExecuteExcel4Macro("GET.DOCUMENT(50)") の GET.DOCUMENT(50) ってなんやねん?ってことなんだけど, http://www.dailydoseofexcel.com/archives/2006/01/30/conditionally-formatting-across-sheets/ によると http://www.microsoft.com/downloads/details.aspx?FamilyID=C09BF7F7-D30E-4CE9-8930-5D03748CA5CD&displaylang=en から説明書が落とせ,GET.DOCUMENTの項に説明が載っているそうだ。説明が全部英語だけど。

yukun916
質問者

お礼

himajin100000様 ご丁寧に色々調べていただきまして有難うございます。 それで、説明を見てみようとURLを開きましたが、仰せのとおり 英語ばっかりで、全く理解不能でした・・・ 特に急ぐわけではないので、自分で参考書なりでも購入して勉強してみようと思います。 どうもありがとうございました。

関連するQ&A

  • Excel マクロ・VBAの印刷方法について

    急ぎの回答です!! 関数式の入っているセル(空白表示)を印刷範囲に入れずに印刷する方法を教えてください。 別シートのデータを関数で引っ張てきてひな形のセルに表示しています。 行→$1:$6 列→$A:$Agは印 刷タイトルに設定。 A列7行目から1.2.3... とNo.が入っており、 B.~J. 列7行目からはデータが最終の50まで入力してます。( 関数式=IF(COUNTIF(コード,$S$1)<ROW(A1),"",OFFSET([元リスト.xlsx]商品一覧!A1,MATCH($S$1,コード,0),1)) ) K.~AG.列7行目からは書式データ(同じ文面の繰り返です。最終の50まで入っています)B~J列の7行目から関数(データ)=IF(COUNTIF(コード,$S$1)<ROW(A1),"",OFFSET([元リスト.xlsx]商品一覧!A1,MATCH($S$1,コード,0),1))をコピぺと一部を変更しセルへ入力して別シートからデータを引っ張てきてます。この関数だと該当する値がない場合はセルは表面上は空白セルに見えますが、セルには数式が入っている状態です。セルデータの最終行を習得し印刷に設定すると関数入力されているところで最終行と認識し、関数式を入れている50行まで印刷してしまいます。 したいことは、データが表示されている30行までなら30行まで印刷という感じにはできないでしょうか? シートを様式一枚ずつ作成しており、1ブックには20シートずつ保存しています。そしてこのブックはおよそ30ブックあります。 1ブック内の全てのシート(20シート)に反映できるようしたいです。 ※30行までデータが表示されている場合、C~Jには途中とちゅうで空白欄がありますが、B列は30行全てデータの表示(該当する場合)されます。 Excel マクロ VBA に詳しい方回答お願いします! B7からはB56まですべて関数式を入力しています(最大50までデータが表示されるように) シート枚数と、元のデータ数が行で7000程とかなり多く、このような関数式になりました。できればマクロ、VBA等での処理が望ましいです(時間がないので><)よろしくお願いいたします!!!

  • エクセルマクロ 【空白セルを無視する方法を教えてください】

    マクロを独学で学び仕事に応用しているのですが、どうしても分からないことが発生してしまい、質問です。 内容は、今、エクセルシートのA1~B5の範囲で A B 1 1 1 2 1 2 3 4 1 5 1 という形で入力されています(見難くてスミマセン)。 この状態から「A列とB列に同じ数字が入力されてれば、メッセージBOXを表示して、なおかつOKボタンを押したら該当セルを赤くする」というマクロを作りたいのですが、本来であれば1行目のみ赤くなるはずなのですが、空白セルが含まれている3行目も赤くなってしまうんです。つまり、空白セルも「同じ値」と認識されているみたいなのですが...。 この場合、空白セルを無視するにはどうしたらよいのですか?教えてください。なお、マクロは以下のように作っています。 Sub ナンバーチェック() Dim Btn As Integer For X = 5 To 10 If Cells(X, "A").Value = Cells(X, "B").Value Then  Btn = MsgBox("同じ数値です", vbOK, "警告")  If Btn = vbOK Then   Cells(X, "A").Interior.ColorIndex = 3 Cells(X, "B").Interior.ColorIndex = 3 End If End If Next End Sub

  • マクロを使わないで○ページ目を印刷する機能、方法

    あるシートを印刷プレビューで見たとき3ページあったとします。 A1セルに1と入力しておけば1ページ目を A1セルに2と入力しておけば2ページ目を A1セルに3と入力しておけば3ページ目を印刷したいのです。 印刷するタイミングは印刷ボタン(クイック印刷)を押した時です。 (タイミングについては任意であれば特に方法にこだわりはありません。) マクロを使わないというのが第一条件です。 何となく無理だろうなと思いながらの質問ですが、オプションボタンなどででもいい方法があればと質問させていただいてます。 よろしくお願いします。

  • マクロで変化する印刷範囲を印刷したい

    教えて下さい!エクセルでデーターが入っている 例えば A1:K25とA27:K40 この領域には別のデーターが入ってます 列数は変更ありませんが行数はシートにより違います 毎回印刷範囲を指定しているので面倒くさいのが現状です どなたかワンプッシュで2つのデーターを入れてある領域を印刷出来るマクロを教えて下さい 上と下のデーターの領域は必ず1~3マスは行が空いてます 列は決まっているのでA1~A●←最終行まで A●下行の空白最後尾+1=A■ A■~A■最終行 この二つの領域印刷がしたいです マクロの記録でやってみましたが行が特定の為違うシートでは使えず 又、指定したシートも行を変更してしまうので印刷範囲指定した方が早いという結果に どなたかお力をお貸しください 宜しくお願いします

  • excelマクロでセル値をフッターに設定&印刷

    改ページごとに(異なる)セル値をフッターにセットし、フォントサイズを32に設定したい。 A列の全てのセルに「品名」が入力されている表があります。 下の表のイメージですが、1行目を印刷タイトルとし、1ページ目は2~3行まで、2ページ目は4行のみ、3ページ目は5~6行まで・・・というように品名が変わるごとに改ページが既に設定されています。 B列の印刷枚数も品名ごとに枚数が決まっており数値が入力されています。      A     B   1  品名  印刷枚数   2  あ     2   3  あ    2   4  い    3   5  う     1   6  う     1 この表は数百行(数十ページ)続いているのですが、各ページに該当する品名をそれぞれフッター(左)に設定し、フォントサイズを32にし、更に各ページに該当する印刷枚数分だけまとめて印刷するマクロを作りたいです。 アドバイスのほど宜しくお願いします。

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

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

  • マクロ 指定行数で改ページ 不足行を追加

    グループごとに連番を振ってある表があり、 マクロを活用して、指定行数で改ページ印刷をしたいのですが、 やり方がわかりません。 ご存知の方教えていただけますでしょうか。 【表】 Aグループ 1~30の連番 Bグループ 1~25の連番 【やりたいこと】 20行ごとに改ページ印刷 20行未満は空白行を挿入する 【出力イメージ】 1ページ目はAグループ1~20で印刷 2ページ目はAグループ21~30と空白行10行で印刷 3ページ目はBグループ1~20で印刷 4ベージ目はBグループ21~25と空白行15行で印刷

  • 集約印刷のマクロについて

    Sub 印刷() Sheets("印刷用").Select If Range("$A$3") > Range("$B$3") Then End '印刷開始と終了の矛盾回避 Range("$B$1") = Range("$A$3") - 1 '印刷開始番号のセット For A = Range("$A$3") To Range("$B$3") '印刷繰り返し回数のセット Range("$B$1") = Range("$B$1") + 1 '印刷する番号の加算 If Range("$B$1") > Range("$B$4") Then Exit For '印刷終了番号にを越えたら終了 ActiveWindow.SelectedSheets.PrintOut Copies:=1 '印刷命令 Next A End Sub  EXCELで以上のようなマクロを組みました。 A3のセルに印刷を開始するシート2にあるデータを含むページ(VlOOKUPで参照)のページ数を、B1に印刷を終了する同じシート2にあるデータを含むページ(VlOOKUPで参照)のページ数を入力して、A4で150枚程度の印刷を行うマクロです。  用紙節約のため、A4の用紙に4枚、あるいは2枚を集約して印刷したいのですが、上の特定のページから特定のページへ印刷するマクロにどのようなマクロを組み込めば、A4の用紙に4枚、あるいは2枚を集約して印刷ができるでしょうか。ご教示のほど宜しくお願いいたします。  バージョンはEXCEL 2007  OS Windows 10です。印刷機器はNEC2900Cです。

  • エクセル印刷で上下の結合セルが別ページにならない方法?

    エクセル2000です。 一枚のシートに表が複数あります。 表中のセルはすべて数式が入っています。 A列は続き番号がふってあります。 B列~E列は上下のセルが結合しています。(2行分) F列は結合していません。 G列は上下の結合あります。(2行分) このような様式の表が、同一シートに1行あけて上から下へ続いています。 しかも、計算結果により表中の行が空白になる場合がよくあります。 その場合、は表中の空白行は非表示になるようにマクロで設定しています。 このシートを印刷した場合、2行を上下で結合したセルが、別ページに分かれてしまうことがよくあります。計算結果で表示がかわるので改ページを事前に入れておけません。 結合セルがページで分割されないようにするにはどうしたらよいでしょうか?

  • 数式のコピーのズレを直す方法、マクロ、関数のいずれかの方法を教えてください!!

    数式のコピーのズレを直す方法、マクロ、関数のいずれかの方法を教えてください!! Sheet1には、計算結果が表示されるようにしてあります。 その結果の数式は、 =IF(Sheet2!A1="","",IF(Sheet2!A1<2,"<",ROUND(Sheet2!A1,2))) と、入っています。 計算結果の表示上、「Sheet1 A1とA2」の2行のセルを結合して1行にしてあって、対して「Sheet2はA1」の1行です。 これをつぎの「Sheet1 A2」に数式をコピペしていくと、 =IF(Sheet2!A2="","",IF(Sheet2!A2<2,"<",ROUND(Sheet2!A2,2))) と、していきたいのですが、 =IF(Sheet2!A3="","",IF(Sheet2!A3<2,"<",ROUND(Sheet2!A3,2))) となってズレてしまいます。 これを300行ほど作らなければならないのです。 数式、1行のセルを2行の結合したセルにコピペできる方法、もしくはマクロや他の関数があれば教えていただきたいです。 わかりにくくて申し訳ありませんが、お願いします。

専門家に質問してみよう