[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『改ページプレビューの最終セル(左下隅セル)を取得したい』(x11euser)
お世話になります。
改ページプレビューをすると印刷範囲の背景色が白で表示されますが、 この時の最終セル(右下隅セル)を取得する方法をご存じないでしょうか。 PrintAreaが設定されていれば簡単なのですが、そうでないとき、どのようにして 最終セルを求めればいいのかわかりません。
< 使用 Excel:Excel2003、使用 OS:Windows7 >
ジャンプ機能の最後のセルとは違いますか? PrintAreaを設定していなければ、改ページの一番右下になると思いますが・・・ (稲葉) 2014/05/26(月) 09:01
Sub test() ActiveSheet.Range("A1").CurrentRegion.Select MsgBox Selection(Selection.Count).Address ActiveSheet.Range(Selection(Selection.Count).Address).Select End Sub (???) 2014/05/26(月) 09:30
早速の回答ありがとうございます。 たとえば[A50]セルに30文字ほどの値を入れたとします。 印刷プレビューで見ると、プレビュー領域は例えば$A$1:$F$50とかの範囲になると思います。 この時の$F$50セルを取得したいのです。 ジャンプ→最後のセルと行うと、このケースでは$A$50セルにジャンプしてしまい、目的の セルにたどり着けません。 (x11euser) 2014/05/26(月) 09:45
改ページプレビューの話ではなかったのですか?
印刷プレビューは印刷設定の用紙サイズに依存され、改ページプレビュー はその用紙にどの範囲までを印刷させるかの設定で、別ものと考えています。
パソコンに繋がれたプリンタの種類によっては、印刷プレビューの範囲は異な りますので、簡単にはできないのではないでしょうか?
印刷プレビュー(A4) ┌────────┐ │┌─┐ │ ││改│ │ ││頁│ │ ││プ│ │ ││レ│ │ │└─┘←Aココ?│ │ │ │ │ └────────┘←Bココ?
印刷プレビュー(はがき) ┌────┐1頁目 │┌─┐ │ ││改│ │ ││頁│ │ │└─┘ │ └────┘ ┌────┐2頁目 │┌─┐ │ ││プ│ │ ││レ│ │ │└─┘ │ └────┘←Cココ?
(稲葉) 2014/05/26(月) 11:08
メニューから、表示(V)→改ページプレビュー(P)と進んだときに表示される画面です。 ┌────┬────┐ │ │ │ │ │ │ │ │ │ │ 1 │ 2 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┘←ココです。
(x11euser) 2014/05/26(月) 12:16
ちょっと情報を整理します 1)改ページプレビューの一番右下のセルを知りたい 2)印刷頁設定はされていない ※ここが重要
もし2)が設定されていた場合、 Sub x11() Dim rngP As Range Set rngP = Range(ActiveSheet.PageSetup.PrintArea) MsgBox "最後のセルは" & rngP(rngP.Count).Address(0, 0) & "です" End Sub こんな感じで取得は出来ると思いますが、
>PrintAreaが設定されていれば簡単なのですが、 となっているので、まっさらな状態で行うと、やはりジャンプの最後のセルが該当しませんか?
例えばA10とD1に入力されていた場合、D10が最後のセルになると思うのですが・・・ (稲葉) 2014/05/26(月) 12:58
おつきあい頂きありがとうございます。
>1)改ページプレビューの一番右下のセルを知りたい >2)印刷頁設定はされていない ※ここが重要 その通りです。
>例えばA10とD1に入力されていた場合、D10が最後のセルになると思うのですが・・・ はい。この場合、D10が最後のセルになると思います。 しかし、例えばD1セルに'ABCDEFGHIJKLMNOPRSTUVWXYZ'等の長い文字列が入っていると、 改ページプレビューにした場合、この文字列を印刷させようと、改ページプレビューは $A$1:$G$10の範囲となってしまいます。このときの$G$10セルを取得したいのですが…。 (x11euser) 2014/05/26(月) 14:13
文字幅がセル幅を上回って、自動的に印刷範囲が文字を入力されたセルより 大きい場合に設定される改ページの右端を取得したいってことですか。
色々調べましたが、力及ばず。
http://www.max.hi-ho.ne.jp/happy/YNxv211.html
ちなみに「$G$10セルを取得したい」は手段ですよね? 本来の目的が分かれば別のアプローチでアドバイス出来るかもしれません。 (稲葉) 2014/05/26(月) 15:11
いろいろとご助言頂きありがとうございます。 目指していたのは印刷領域が設定されていないシートの印刷領域(PRINTAREA)を VBAを使って自動的に設定することでした。 (x11euser) 2014/05/26(月) 15:23
エクセルが自動で判別してくれるのに、敢えてVBAで設定する利点て何でしょう? どんな場面に必要ですか?
例えばA列に入力された章番号ごとにページを区切るなどは、先に提示した改ページの 項目で設定可能です。
文字が長くて、横に頁数が増えてしまうなら、 Zoom = False FitToPagesWide = 1 FitToPagesTall = 10 と縦を増やし横を1に固定するなどで対応できませんか? ※縦を10にしても、3頁分しか入力されていなければ、3頁しか印刷されません。
VBAを使って設定する目的が分かりませんが、私がよく使う設定を紹介しました。 (稲葉) 2014/05/26(月) 17:47
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.