[[20140526081901]] 『改ページプレビューの最終セル(左下隅セル)を取得』(x11euser) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『改ページプレビューの最終セル(左下隅セル)を取得したい』(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.