- ベストアンサー
エクセルマクロについて
マクロ初心者です。 Rows("30:40").Hidden = True Range("30:40").Hidden = True 上だと、うまくいくのですが 下だと、下記のようなエラーが出ます。 『rangeクラスのhiddenプロパティを設定できません』 なぜでしょうか、教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Rows("30:40").Select Range("30:40").Select なら出来ますよね。それがHidden = TrueではだめなのはRangeにはhiddenプロパティが無いからでしょうね。 行は非表示にできますが範囲は非表示にすることができないということです。
その他の回答 (2)
- winarrow07
- ベストアンサー率41% (143/346)
「行の指定の仕方」としては、Rows("30:40")、Range("30:40")どちらでも問題ありません。 憶測ですが、RangeオブジェクトではHiddenプロパティは使えないんではないかと思います。例えば、RangeではRange("A1")などとセルまたはセル範囲を扱うことが主だと思いますが、Range("A1").Hidden=true はNGであることは想像できると思います(行や列はそのままでセル(A1だけ)を隠すのは矛盾しているかと)。なのでRangeにHiddenは用意されてないんではと思います。Rangeでも行か列のみが指定された場合はHiddenプロパティを持つ、という作りにしていることもないでしょう。 行または行範囲を扱うならば、やはりRowsオブジェクトを使うのがベストなのではないでしょうか。 No.1さんのようにRange("A1").EntireRowとすると行オブジェクト(セル、セル範囲でなく行を扱う)になると思いますので、それでもOKかと思います。
お礼
返事遅くなってすいません。 ありがとうございました。
- Dxak
- ベストアンサー率34% (510/1465)
> Range("30:40").Hidden = True を Range("30:40").EntireRow.Hidden = True と、してみてください 恐らく、行の「Hidden」を行うか?列の「Hidden」を行うか?これじゃ、判らん!と言う話でエラーなのだと・・・
お礼
返事遅くなってすいません。 ありがとうございました。
お礼
返事遅くなってすいません。 ありがとうございました。