dポイントプレゼントキャンペーン実施中!

たとえば、新たにワークシートを挿入し、A1とC3のセルにのみ入力し、他のセルには一度も入力や書式設定をしなかった場合、
MsgBox ActiveSheet.UsedRange.Addressは、当然 $A$1:$C$3 を返しますね。
この場合、仮にD列から右に非表示の列があってもUsedRange.Addressは変わりません。

ところが、4行目以下に非表示行があった場合は何故か非表示行までの範囲がUsedRange.Addressに含まれてしまいます。
仮に上記の入力状態のままで、20行目とF列を非表示にすると、不思議なことに $A$1:$C$20 が返ってきます。

どうしてUsedRangeの取得では、行と列との非表示の場合の取り扱いが異なるのでしょうか?
( ̄∇ ̄; ?( ̄□ ̄; ? Σ( ̄0 ̄;)?

A 回答 (3件)

あまり細かい事を気にせずに、そういうもんだと考えてしまえば幸せになれるでしょう。



それだと回答にならないので、
行を非表示にしなくても、行高を変更しただけでUsedRangeの範囲に含まれるようです。列幅は関係ないようです。

それで、想像なのですが、
列や、UsedRangeの範囲、ズーム、ウインドウの分割等は、シートの情報で、
セルの値・書式、行の高さや表示・非表示等は、UsedRangeの情報になっている、
という事なのかも知れません。

ブックを保存する時や、エクセルの何か機能を使う時、それらの情報をエクセルに認識させて動作させているんじゃないでしょうかねぇ。
    • good
    • 0
この回答へのお礼

NNAQさま、「切り取り不可」につづきまたもやありがとうございます。

> 行高を変更しただけでUsedRangeの範囲に含まれるようです。列幅は関係ないようです。

これも新たな驚きです。知りませんでした。
(^0_0^)ナルホド
まあ、こういうものだと覚えてわたしも幸せになります。
(≡^∇^≡)
ありがとうございました。

お礼日時:2009/03/17 15:53

> でも、ワークシートの使用範囲外の行がフィルターで非表示になる場合ってどんな場合でしょうか?



それよりも、先にお聞きしたいのですが・・・

> A1とC3のセルにのみ入力

なのに

> 20行目とF列を非表示にする

場合ってどんな場合でしょうか? 使用範囲外の行を・・・
    • good
    • 0
この回答へのお礼

a7awuさま、何度もありがとうございます。
いえ、別に特定のケースを想定しているわけではないのです。
UsedRangeの範囲について、当初自分では何かデータが入力されたセルを結ぶ矩形だと思っていました。
ところがまったく入力しなくとも色を変えたり、フォントを変更しただけでもUsedRangeの範囲が広がることに驚きました。
そして何をすればUsedRangeになるのかを実験していてこの現象に気づいただけです。
特に実用的な意味はないでしょうが気になったものですから。

使用範囲外の行を非表示にはいくらでも出来ますが、使用範囲外の行をフィルターで非表示には出来ませんよね?

お礼日時:2009/03/14 10:16

フィルタの関係で、そういう 仕様 になったものと思いますよ。


フィルタ状態か否かで UsedRange の範囲が変わったら使いにくいと思いませんか?
列方向には、フィルタが掛からないから・・・ と推測しますが・・・
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
フィルタの関係ですか。
でも、ワークシートの使用範囲外の行がフィルターで非表示になる場合ってどんな場合でしょうか?

お礼日時:2009/03/14 00:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!