• ベストアンサー

エクセルマクロについて

マクロ初心者です。 Rows("30:40").Hidden = True Range("30:40").Hidden = True 上だと、うまくいくのですが 下だと、下記のようなエラーが出ます。 『rangeクラスのhiddenプロパティを設定できません』 なぜでしょうか、教えて下さい。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

Rows("30:40").Select Range("30:40").Select なら出来ますよね。それがHidden = TrueではだめなのはRangeにはhiddenプロパティが無いからでしょうね。 行は非表示にできますが範囲は非表示にすることができないということです。

raiones
質問者

お礼

返事遅くなってすいません。 ありがとうございました。

その他の回答 (2)

回答No.3

「行の指定の仕方」としては、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かと思います。

raiones
質問者

お礼

返事遅くなってすいません。 ありがとうございました。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

> Range("30:40").Hidden = True を Range("30:40").EntireRow.Hidden = True と、してみてください 恐らく、行の「Hidden」を行うか?列の「Hidden」を行うか?これじゃ、判らん!と言う話でエラーなのだと・・・

raiones
質問者

お礼

返事遅くなってすいません。 ありがとうございました。