• ベストアンサー

エクセル マクロ 印刷設定

エクセルの写真台紙のようなものがあり、 A4(サイズ)の枠に4枚貼れるようになっています。 そのA4(サイズ)の枠が『横方向』に20枚あります。 印刷範囲設定をコマンドボタンに入れたいのですが、 写真(JPG)を貼り付けた最終ページまでを 印刷範囲として設定できるでしょうか?

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

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

具体的な姿な何も説明されていないので,「台紙1枚分のセル範囲」がA:M列(13列),右隣の2枚目台紙がN:Z列(やはり13列)といった具合のレイアウトにします。 sub macro1()  dim s as shape  dim res as long  for each s in activesheet.shapes  res = application.max(res, s.bottomrightcell.column)  next  res = application.ceiling(res, 13)  activesheet.pagesetup.printarea = range(columns(1),columns(res)).address end sub

noname#225437
質問者

お礼

質問通りの動作では可能でしたので ベストアンサーとさせていただきます。 ありがとうございました。

noname#225437
質問者

補足

説明不足すみません。 説明文からだとこの方法で完璧でしたが それぞれページ内には文字も罫線も『オートシェイプ』も最初から存在し、それを含め印刷範囲を設定したいのです。 ですので、20枚目のオートシェイプを認識し 印刷範囲は毎度、20枚すべてになってしまいます。 そもそも写真だけを認識する事が可能なのかは 分かりませんが、 別の方法を探りたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

写真だけなのであれば、印刷範囲をクリアしてやれば写真がある範囲だけ印刷してくれます。 要するに、写真がない範囲にも「見出し」的な文字が入っていて、 印刷の時にはそれらは不要、文字だけのページは印刷したくない。 ・・と言うことでしょうか。 写真がある範囲の右端の「座標」は、 全ての写真をグループ化して、その幅を見れば取れそうです。 シート内の全ての列について「列幅が同じ」なら・・   一番右にある図の右端の座標÷列幅=列数 ですから、そこから割り出して、印刷範囲の設定が可能かもしれません。 Sub Sample1() Dim SR As ShapeRange     ActiveSheet.PageSetup.PrintArea = ""     ActiveSheet.Shapes.SelectAll     Set SR = Selection.ShapeRange     With SR         .Group     ' セル幅が「54」で、縦の印刷範囲が31行目までの場合     ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(31, Int((.Width / 54) + 0.5))).Address         .Ungroup     End With End Sub   ※走らせてプレビューで確認下さい。 また、印刷する全てのページにおいてページの幅は同一でしょうから、   一番右にある図の右端の座標÷ページ幅=ページ数 ですから、そこから割り出して、印刷するページ範囲(●ページ~○ページ)の指定をして 印刷まで一気にできるかもしれません(印刷ダイアログ内での印刷範囲指定を利用)。 これだと、列幅がマチマチでも(レイアウトが一緒なら)対応できる気がします。 Sub Sample2() Dim SR As ShapeRange     ActiveSheet.PageSetup.PrintArea = ""     ActiveSheet.Shapes.SelectAll         Set SR = Selection.ShapeRange     With SR         .Group     ' 1ページの領域の幅が「486」なら     ActiveSheet.PrintOut From:=1, To:=Int((.Width / 486) + 0.5)         .Ungroup     End With End Sub   ※注 動かすと印刷されます。 ちなみに「領域(セル)の幅」は、調べたい領域(幅)を選択した状態で イミディエイトウィンドウに「? selection.width(Enterキー)」で調べられます。 (例えば、A1:I1を選択した状態でイミディエイトに入力し、Enter。) どちらの場合も「Int(******* + 0.5)」としているのは、「切り上げて整数」にしたいからです。 (例えば、写真がある領域が「12.2ページまで」の時には「13ページ」にしたい。  小数のままやると多分エラーが出ます。切り捨ててしまうと写真が欠けます。) また、どちらの場合も改ページ位置ギリギリに写真があると、若干欠ける可能性もあります。 もっと上手い方法があるんじゃないかなぁ・・とも思いますので、 とりあえず、参考までにお納め下さい。

noname#225437
質問者

お礼

私が条件を明確にしていなかったので説明不足でした。 御時間を割いて説明して頂いたのに 申し訳なく思います。 この方法でやってみたのですが 私が未熟なもので理解出来ない部分がありました。 ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルマクロ

    横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行目には上記セル以外に元から文字が存在します。

  • エクセルの印刷範囲の設定について

    いつもお世話になっております。 エクセルでの印刷設定についてお尋ねします。 以前からエクセルは仕事等で使っていますが、印刷範囲の設定が上手くいきません、下記に私がやっている設定方法を記載しますので、ご指摘があったらお願いいたします。 (設定方法:A4横での打ち出し) 1.適当に表を作成 2.ページ設定でA4横を選択 3.改ページプレビューにして青の太枠をドラックして1ページのエリアを設定 4.プレビューを見てA4用紙に上手く入っているのを確認 5.印刷 以上のような手順で印刷を行っています。 この場合、例えば列を追加した時、右横が印刷範囲外に出てしまうので、再び青の太枠をドラックして横を印刷範囲に入れると縮尺が小さくなって、プレビューを見るとA4の左上の方に表が小さく表示されて下側と右側に大きな余白が出来てしまう場合があります。 この場合は非常に面倒で、再び縮尺を100%に戻して、改ページの青太枠をドラックして・・・ってな事を何回か繰り返しています。 表の横幅を用紙サイズに固定して縦幅はその縮尺で用紙サイズに入るところまで印刷したい場合の設定のやり方を教えてください。 また、縮尺を100%にすると列方向に添付ファイルのように細かく改ページがラインが出来てしまいます。なぜでしょうか? わかりづらい文章で申し訳ありませんが長年困っている事案なのでよろしくお願いします。

  • エクセルでの印刷設定

    こんにちは又よろしくお願いします。元々シートが6ページまである表で1ページ目に6枚まとめての印刷ボタンが作成されています。プリンターはA3サイズが印刷可能で用紙設定はA3で出力は原稿サイズになっています。そこにA4サイズの縮小印刷ボタンを作成しようと思い マクロの記録をはじめて (1)印刷の設定を用紙設定はそのままで出力はA4で設定 (2)実際に印刷する (3)A4サイズの印刷物が出てくる (4)そのままでは元々のボタンで印刷したときA4サイズで出力されるので出力をA3の戻す (5)マクロ記録の終了 これで新たに作った縮小ボタンを押すとA4印刷物が出てきてその後設定は元のサイズに戻ると思ったのですが、実際印刷してみるとA3の物しか出てきません。正しいマクロ設定をご教授よろしくお願いします。

  • Excel 2007の印刷書式設定について

    Excel 2007でワークシートに挿入した描画が印刷されない。 会社でOffice Personal 2007のExsel 2007を使っています。 そのExcel 2007でドキュメントを作成する際、ページ設定をA4横の設定にして、ドキュメントを作成し、そのワークシート内に写真や、描画を挿入し、印刷を行おうと印刷プレビューで印刷状態を確認して、いざ、印刷実行をすると、挿入した写真は、印刷されるのですが、一緒に挿入した描画が全て印刷されず、消えたような状態となります。 ちなみに、ページ設定上の問題かな、と思い、作成した、A4横のドキュメントを印刷実行する際に、印刷方向の向きを、A4縦に変えたところ、今度は、印刷プレビューの通りに印刷できました。 ちょっと、きつねにつままれたような感じです。 Excel 2007の何か、トラブルでしょうか。 原因が、分からずに居ます、何方か、対処方法の分かる方、いらっしゃいますでしょうか。 サポートをお願いします。

  • エクセルでの印刷

    エクセルで印刷する際に、A4サイズ2枚分のデーターを1枚の紙に印刷したいのですが、範囲指定などして1枚にフィットするように印刷できませんか? ロータス123なら、範囲していして印刷ボタンを押すと簡単に範囲指定の部分だけ印刷できていたのですが。。。 エクセル初心者ですので、よろしくお願いします。

  • エクセルで印刷範囲を設定しているページに飛ぶ事は出来ますか?

    エクセルで印刷範囲を設定しているページに飛ぶ事は出来ますか? 印刷範囲を設定してプレビューで横に5ページほどあります。 ページ毎に分類ををまとめているので横のスクロールで移動するより ボタン一つで次のページに移動が出来ると楽なのですが可能でしょうか?

  • エクセルの印刷設定

    エクセルで多数のシートを印刷する場合、 それぞれのシート毎に設定して印刷しています。 毎回同じ作業を行っています。 毎回設定しないで1度きりの設定で次回も同じ様に印刷できる方法を教えて下さい。 各シートの表の大きさは同じです、印刷範囲も同じです。 私の行ってる作業は、 1:選んだシートの表の印刷範囲を設定する。 2:用紙の印刷向きを横に設定する。 3:印刷プレビュー 4:そのままでは設定した範囲がA4に入らないので余白を狭めて1ページに収まるようにする。 この作業をシート毎に行い、印刷したいシートを選択して印刷開始。 次回もまた1から行わないと設定は記憶されていません。 効率よく出来る方法を教えて下さい。

  • Excel 印刷範囲の設定について

    こんにちは。 Excelで印刷範囲の設定をしたいのですが、下記2つの方法の違いを教えて下さい。バージョンは2007です。 1、印刷範囲(A1:C5とします)をドラッグして、ページレイアウトタブのページ設定グループの印刷範囲ボタンで印刷範囲の設定を選択する。 2、ページ設定ダイアログボックスのシートタブの印刷範囲のボックスをクリックしたあと印刷範囲(A1:C5)をドラッグする。 上記の方法でやってみたところ、2の方法でやった場合に$A$1:$C$5のように、絶対参照になってしまいます。なぜでしょうか? 1と2の違い(絶対参照になる理由)は何でしょうか? 絶対参照にする意味はないと思うんですが…アドバイスよろしくお願いします。

  • エクセル-excel-改ページと印刷

    わたくし、WINDOWS ME,Office2000personalを使っております。 エクセルで作表して、美しく印刷することって難しいことなのでしょうか...? A3サイズのページ設定にし、表を作ります。どうやらページ枠内から列方向だけはみ出てしまったので(行方向は例の点線枠内にちょうど納まっています)列方向だけを改ページプレビューの例の青い線をドラッグして印刷枠内に収めました。 そうすると、今度は行方向が微妙にずれて、下の部分の余白が大きくなってしまうのです。これは、どうしようもないことなのでしょうか?

  • VBAでの複数ページの印刷範囲の設定について

    下記の2種の印刷設定をVBAで切り替えようと思っているのですが、【2】のように改ページする箇所を指定することは出来るのでしょうか? 【1】 印刷範囲:G2~CZ136 ページ数:1 原稿サイズ:A3 出力用紙サイズ:A3 原稿の向き:よこ原稿 まとめて1枚:Nアップしない 【2】 印刷範囲:G2~CZ69、G70~CZ136 ページ数:2 原稿サイズ:A4 出力用紙サイズ:A3 原稿の向き:よこ原稿 まとめて1枚:2アップ 印字方向:順方向

専門家に質問してみよう