• ベストアンサー

マクロ初心者です

マクロ初心者です 同じSheet内で範囲印刷を設定してある場合で、 A1に1のデータが入力されている場合範囲印刷(セル)の1ページだけ印刷し、 A2に1が入力されている場合2ページ目を印刷するように、 A列のデータ入力状況で範囲印刷のページを操作するマクロを教えてください。

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

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.3

Sub Macro1() For i = 1 To Range("A" & Rows.Count).End(xlUp).Row If Range("A" & i).Value = 1 Then ActiveWindow.SelectedSheets.PrintOut From:=i, to:=1, Copies:=i, Collate _ :=True End If Next i End Sub でどうでしょうか。 ところで質問する前に、マクロを記録してみたり、調べたりはしたのでしょうか。 Sub Macro1() Range("A1").Select ActiveWindow.SelectedSheets.PrintOut From:=1, to:=1, Copies:=1, Collate _ :=True End Sub いくら初心者といっても上記のマクロくらいまではできたのではないでしょうか。 質問して回答を得て、コピーして出来たら終わりではいつまでたっても初心者のままです。 自分で出来るところまで作ったものを、どこをどう直せば出来るかを質問して、 得た回答を見て、わからないところがあったら調べるようにした方が上達も早いと思います。 今回の質問は、自力で何とか出来たのではないかと思いましたので 余計な事も書かせてもらいました。すいません。

hashihasi
質問者

お礼

回答ありがとうございます。 前回もお世話になりましたね! ホントにそうですね!自分の甘さに痛感したました。 ただ、回答を求めるのではなく、自分で出来る所まで作成し質問するよう次回より心がけたいです。 ただ、本当の初心者なので、サイト・本等で調べたのですがなかなかうまくいかなかったので・・・ よろしければ、参考になるサイト勉強方法があればご伝授いただければうれしいです! ちなみに、上記のマクロぐらいも出来ないほどの初心者です。 でも、マクロを覚えたいのでよろしく、おねがいします!

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

Sub test() For i = 1 To Range("A" & Rows.Count).End(xlUp).Row If Range("A" & i).Value = 1 Then ActiveWindow.SelectedSheets.PrintOut From:=i, to:=i, Preview:=True End If Next End Sub こんな感じでしょうか。

hashihasi
質問者

お礼

早々のご返事ありがとう ございます 是非試させていただきます! マクロの記述方法(内容)も勉強させていただきます ありがとうございました。

  • kei_su
  • ベストアンサー率33% (35/106)
回答No.1

こんなんでどうでしょうか? Sub Macro()   Dim 印刷頁 As Integer   印刷頁 = 0   Range("A1").Select   Do While ActiveCell.Value <> ""     印刷頁 = 印刷頁 + 1     ActiveCell.Offset(1, 0).Select   Loop   If 印刷頁 <> 0 Then     ActiveWindow.SelectedSheets.PrintOut From:=印刷頁, To:=印刷頁   End If End Sub

hashihasi
質問者

お礼

早々のご回答ありがとう ございます! 是非試させていただきます!

関連するQ&A

  • エクセルのマクロで、印刷設定をしたいのですが可能でしょうか?

    エクセルのマクロで、印刷設定をしたいのですが可能でしょうか? お世話になっています。 会社での作業を少しでも効率よく出来ないものかと、以下のようなことを考えています。 エクセル2003を使用していますが、下記のような動作をするマクロを組むことは可能でしょうか? よろしくご教授ください。 Sheet1は、入力用のシートとして使っています。 Sheet2は、Sheet1に入力された商品データなどから、必要な箇所のみ反映されるように設定しています。 このシートは、罫線などが存在し表形式になっており、全てを印刷するとA4用紙6枚分になります。 そこで、Sheet1(入力用のシート)のJ18セルに文字が入力された場合は、Sheet2(印刷用のシート)の1ページだけを印刷したく、Sheet1のj27セルに文字が入力された場合は、Sheet2の2ページまで・・・ Sheet1のJ36に文字が入力された場合は、Sheet2の3ページまでという風に印刷範囲を設定しなくても印刷出来るようにしたいのです。 よろしくお願いします。

  • 【Excel】マクロで印刷範囲の設定

    Excel2003を使用しています。 マクロで印刷範囲を設定するコードを書きました。ページを追加するマクロを実行したときに一緒に実行するようにしているのですが、コードで指定している範囲外にデータがあるせいか、その列まで印刷範囲に設定されてしまいます。このデータは印刷範囲には入れたくないのですが、どうしたらいいでしょうか? ちなみに、印刷範囲部分のコードは  .PageSetup.PrintArea = Range(Cells(1, 1), Cells(j, 24)) Y1セルとZ1セルにデータが入力されています。マクロを実行すると、印刷範囲がA1:Zjに設定されます。印刷範囲はX列までに設定したいのですが、可能でしょうか?よろしくお願いします。

  • エクセルVBA初心者です。マクロを組んでください。

    エクセルVBA初心者です。組んで欲しいマクロがあります。 Sheet 1に13桁を入力するセル sheet 2に検索したいデータ 手順としては、 Sheet 1のセルにデータを入力 →13桁以上でマクロが開始(されるように設定します) →Sheet 1のセルと同じ数列をSheet 2の列Aから検索 →該当のセルを含む行をSheet 3にコピー →Sheet 1の入力セルの少し下にもコピー (確認用) というのを一回一回ずつやりたいです。 できれば作業中マウスやキーボードを触りたくないので、そのために、マクロの終わわりには入力セル内の消去、マクロの始まりには確認用でコピーした行の削除もつけて下さい。 検索するSheet 2には同じデータが含まれているので、出来ればひとつずつSheet 3にコピーしたいので組み込んで頂けると幸いです。 よろしくお願いいたします。

  • Excelのマクロ初心者です

    Excelのマクロ初心者です 同じBookでセルA1に”1”が入力されているSheetのみ全て印刷する マクロを教えてください!

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

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

  • エクセルマクロ

    全くの素人です。 200人のお得意先に案内状を送付します。 sheet1 A列1~A列200に会社名、 B列1~200までに、代表者の名前を入力しています。 sheet2に案内状があります。 会社名と名前だけ変えて200回するのもひと苦労ですので、マクロを使えればと思います。 1マクロに記憶する 2A列1・B列1をコピー 3sheet2に貼り付け4印刷 5マクロ記憶終了 マクロを実行するとA列1・B列1ばかり印刷されます。 A列2・B列2 A列3・B列3 と言うように順番に下段を印刷させる設定はどのようにすれば良いのでしょうか

  • エクセルマクロ超初心者で、悩んでます。

    エクセルマクロ超初心者で、悩んでます。 どなたか助けてください。 悩みはこうです↓ データ用のワークシートのセルに数字、文字が入力してあります。 セルの数値同士の引き算で算出した数値を列数として、別の印刷用のワークシートのセル番地(列、行)に、「文字」を表示したいのです。 日本語で書いちゃうと ワークシート「印刷用」の、あるセル番地(ワークシート「データ用」から、列数はJ1‐A1、行数はのB1の数値)に ワークシート「データ表」のC1の文字 を出力せよ です。 Worksheets選択がうまくいきません CellsかRangeを使うのかと思いますが、引き算する表現がわかりません・・ 文例があれば、稚拙ながら活用できるかなと思います。 よろしくお願いします!

  • excelでマクロを使用した連続印刷について

    A2セルから通し番号、氏名、住所等のデータが入力されている「データ」シートがあり、 VLOOKUPを使用してB3セルに「データ」シートのA列にある「通し番号」を 入力すると氏名・住所等が反映される「印刷」シートがあります。 例えば「データ」シートのC列(住所)に「東京都」という文字列が 含まれている宛名のみを連続で印刷したい場合、 どのようなマクロになりますでしょうか? (マクロ内に「東京都」と指定する方法と、 シート内の特定セルに入力した文字列で指定する方法が ありますでしょうか?) wordでの差し込み印刷や、宛名ソフト等の使用は考えておりません。 よろしくお願いいたします。

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

    エクセルのマクロ初心者です。 マクロを使用して印刷プレビューが見れるようにしたいです。 vlookup関数を使いsheet1に入力し、sheet2,sheet3,sheet4、sheet5へデータを反映させています。 sheet1に入力画面を作成してあり、セルA2~A13に入力すればsheet2へ、セルA17~A28はsheet3へ、セルF2~F13はsheet4へ、セルF17~F28はsheet5へデータを反映する作りです。 sheet2~sheet5はフォーマットを作成してあり、印刷するとA4で2枚印刷されるようになっています。 入力画面で入力した内容によってはA4用紙1枚ですむこともあります。(A1~M15でA4用紙一枚、A1~M31でA4用紙2枚) 教えて頂きたいことは。 ・入力画面にマクロのボタンを設置し、ボタンをクリックすると印刷プレビューが表示されるようにしたいです。 ・sheet2用、sheet3用、sheet4用、sheet5用、とボタンを設置したい。 ・印刷プレビュー後に、(実際には印刷後)に入力画面を表示したい。 ・印刷プレビューが見たいのはsheet2,sheet3,sheet4,sheet5です。 以上です。 説明が下手ですみません><

  • MS-EXCEL VBA (マクロ) の書き方

    エクセルの複数シートのデータを両面印刷可能なプリンターで、両面印刷するためのマクロを書きたいのですが、どうしてもうまく行きません。 シート名は、1,2,3,4 と4シートで、それぞれのシートにA4用紙1枚分のデータがあり、それが印刷範囲に指定されています。それら4枚分の印刷範囲を、1枚のA4用紙に、2ページを1ページに圧縮+両面印刷 で印刷したいのですがどうしてもうまく行きません。(プリンターのプロパティ設定はマクロ実行前にSheet1で行っているのですが。) どなたかお分かりになる方、お手数ですがご教授願えませんでしょうか。 補足:ちなみに、4ページ分を1ページに印刷して、片面での印刷は以下のマクロで出来ています。 Sheets(Array("1", "2","3","4")).Select Sheets("1").Activate 'この時Sheet1で、プリンターのプロパティで、4ページを1ページに印刷を選択してある。 ActiveWindow.SelectedSheets.PrintOut Copies:=1 よろしくお願いします。 ちなみにプリンターは事務所のネットプリンターで、TOSHIBA e-STUDIO4520CSeriesPCL6 です。

専門家に質問してみよう