エクセルマクロで印刷範囲を特定する方法

このQ&Aのポイント
  • エクセルマクロで特定のセルに入力された文字を含むページまでを印刷範囲として設定する方法をご紹介します。
  • 特定のセルの位置は、1枚目から順に「C4」「J4」「Q4」「X4」「AE4」「AL4」「AS4」「AZ4」「BG4」「BN4」「BU4」「CB4」「CI4」「CP4」「CW4」「DD4」「DK4」「DR4」「DY4」「EF4」となっています。
  • 印刷範囲を設定する際には、特定のセルに入力された文字を監視し、それが存在するページまでを印刷範囲として指定するマクロを作成します。
回答を見る
  • ベストアンサー

エクセルマクロ

横7列、縦64行が1枚の台紙(A4サイズに収まる)が横方向に20枚並んでいます。 その20枚の台紙のうち入力した分の台紙(何枚目)までを、 『印刷範囲の設定』というマクロを組みたいと思っています。 ただし台紙自体に元から文字などが入力されているので、 単純に最終入力ページと設定できません。 そこで「20枚それぞれのある特定のセル」に文字が入力がされた場合にそのセルを含む ページまでを印刷範囲として指定できないでしょうか? 特定セルの場所は 1枚目「C4」、2枚目「J4」、3枚目「Q4」、4枚目「X4」、5枚目「AE4」、6枚目「AL4」、7枚目「AS4」、 8枚目「AZ4」、9枚目「BG4」、10枚目「BN4」、11枚目「BU4」、12枚目「CB4」、13枚目「CI4」、 14枚目「CP4」、15枚目「CW4」、16枚目「DD4」、17枚目「DK4」、18枚目「DR4」、19枚目「DY4」、 20枚目「EF4」 となっており、1枚単位で考えると3列目・4行目の位置です。 ちなみに4行目には上記セル以外に元から文字が存在します。

noname#225437
noname#225437

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>そのセルを含むページまでを印刷範囲として指定 sub macro1()  dim i as integer  dim res as string  for i = 3 to 143 step 7   if cells(4,i) = "" then exit for  next i  if i = 3 then   msgbox "NO DATA"   res = ""  else   res = "$A$1:" & cells(64, i - 3).address  end if  activesheet.pagesetup.printarea = res end sub

noname#225437
質問者

お礼

早速できました! ありがとうございました。

関連するQ&A

  • エクセルでの行変換

    こんにちは。 こんなことできたらいいなあという気持ちなのですが、 1列に(または1行に)入力した文字や数列がありますよね。(注:セル上ではありません、1つの列や行で) それでですね、印刷をするときに、印刷プレビューを開くと1ページにはおさまらなくなり、1列のものが何ページにもまたがって、印刷されてしまいますよね。 そんなときの裏わざとして、 ”1列のものをいくつかの列に並べて、1ページにまとめられる設定” というのはできませんか? たとえば、文字や数列が規則正しく、上から、下までいったらいったら次の行というような形式になっている場合、文字や数式をセルに追加したい時、各列に含むセルの数が変わってしまったり、均一でなくなったりしてしまい、とても不便です。 よろしくお願いします。

  • excelの印刷用マクロ。

    excelで分からない事があり困っています。 横がA~I列、縦がB列のB-1から文字が入力されている最後の行までの範囲を選択して、印刷するマクロを作りたいのですが、どうすればよろしいでしょうか。印刷したいシートには、オートフィルタが掛かっている場合もあります。その場合は、その状態のまま印刷出来る様にしたいです。 どなたか分かる方が居ましたら回答お待ちしています。 よろしくお願いします。

  • Excelマクロを利用してコピーする方法について

    不特定の行を不特定の行にコピーするマクロを教えて下さい Rangeには直接セル位置を指定しなければならないと 思っているので何か方法がないでしょうか? 横に長い行を不特定位置にコピーしたいので           A列  B列  C列  D列 不特定の行  AAA 111 222 333 不特定の行  BBB 222 333 444 不特定の行 不特定の行 不特定の行 不特定の行 CCC 333 444 555  不特定の行 DDD 444 555 666   不特定の行 EEE 555 666 777  不特定の行 FFF 666 777 888  CCCが入力されているセルをクイック後、マクロを起動、BBBの下の行のセルを クイック後、CCCの行をそこにコピー そんな方法でのコピーがしたいのです 何か方法があったらお願いします

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

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

  • マクロ 不特定のセル範囲をコピーする方法

    いつも回答して頂きありがとうございます。 不特定行(列は特定)のセルの(図の赤文字の箇所)文字が入力の有無を確認し、入力されていたら、赤枠のセル範囲を全てコピーするマクロを考えていますが、さっぱりわかりません。大変お手数だと思うのですが、御指導して頂けないでしょうか?宜しくお願い致します。

  • エクセルの見出しのヘルプについて

    エクセルに以下のようなヘルプがあるのですが、何度読んでも理解できません。どのようなケースでこの方法をつかうのでしょうか?またどのような利点があるのでしょうか。 よろしくお願いいたします。 各ページに印刷タイトルが印刷されない 行や列の見出し (ラベル) が入力されているページにだけ、印刷タイトルが印刷されます。たとえば、行見出しとしてセル A1:A5 を選択すると、行 5 より下の行だけが印刷されるページには行見出しが印刷されません。また、列見出しとしてセル A1:E1 を選択すると、列 E より右の列だけが印刷されるページには列見出しが印刷されません。これらのページに見出しを印刷するには、行または列の見出しをコピーします。 追加の行に行見出しをコピーする 行見出しとして印刷するセルを選択し、 (コピー) をクリックします。 行見出しが入力されていない、同じ列のセルを選択し、 (貼り付け) をクリックします。 [ファイル] メニューの [ページ設定] をクリックし、次に [シート] タブをクリックします。 [列のタイトル] ボックスをクリックし、行見出しを入力した列全体を指定します。たとえば、列 A のセルにコピーした行見出しを各ページに印刷するには、「$A:$A」と入力します。 追加の列に列見出しをコピーする 列見出しとして印刷するセルを選択し、 (コピー) をクリックします。 列見出しが入力されていない、同じ行のセルを選択し、 (貼り付け) をクリックします。 [ファイル] メニューの [ページ設定] をクリックし、次に [シート] タブをクリックします。 [行のタイトル] ボックスをクリックし、列見出しを入力した行全体を指定します。たとえば、行 1 と行 2 のセルにコピーした列見出しを各ページに印刷するには、「$1:$2」と入力します。

  • エクセルのマクロ記述について

    J列、K列に入力されている行まで下記処理を行うマクロの記述を教えてください。 J列のセルの文字列がにSHAPEの場合、その行のB~E列のセルの色を黄色にする。 K列のセルの文字列がにSHAPEの場合、その行のF~I列のセルの色を黄色にする。

  • 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にし、更に各ページに該当する印刷枚数分だけまとめて印刷するマクロを作りたいです。 アドバイスのほど宜しくお願いします。

  • エクセル

    例えば、 C13からCH13のセルに文字(文字の特定は無し)の入力があれば、 CI13に『1』と入力されるようにしたいです。 どのようにすればよいのか教えてください。

  • エクセルで印刷範囲を自動で指定し、印刷するマクロ

    エクセルの表の中から、ある特定の文字が入っている セルを探し、そのセルから「下に3、右に2」の範囲 (文字が入っているセルは含まない)を自動的に範囲 指定して印刷するマクロをつくりたいのですが、どうすればよいでしょうか? たとえば、「○」が入力されているセルが A2だとすればA3からC5を自動的に範囲指定して印刷 するようにしたいのです。 どうぞよろしくお願いします。

専門家に質問してみよう