Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » RangeクラスのHiddenプロパティを設定できません。とは?

RangeクラスのHiddenプロパティを設定できません。とは?

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

RangeクラスのHiddenプロパティを設定できません。とは?

「excel vba rangeクラスのhiddenプロパティを設定できません」
「エクセル マクロ rangeクラスのhiddenプロパティを設定できません」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。

Excel VBA(Visual Basic for Applications)で、セルを非表示にする処理を含んだマクロを作成しようとした方による検索キーワードです。

[スポンサードリンク]

「RangeクラスのHiddenプロパティを設定できません。」エラーが出るサンプル

例えば、A1セルの行または列を非表示にしようとして、
 Sub Sample()
  Range("A1").Hidden = True
 End Sub
といったコードを書いてしまったのでしょう。

上記のマクロを実行すると、
「実行時エラー'1004': RangeクラスのHiddenプロパティを設定できません。」
エラーが発生します。

このエラーの原因と対応方法を探していたのが、
「excel vba rangeクラスのhiddenプロパティを設定できません」
「エクセル マクロ rangeクラスのhiddenプロパティを設定できません」
という検索キーワードでしょう。

非表示にできるのは行全体または列全体

Excelのセルで非表示にできるのは、行全体か列全体です。
単独のセル、例えばA1セルだけを非表示にする、などということはExcelではできません。
VBAから処理する場合も同じです。
非表示にできるのは、A列全体か、1行目全体です。

先ほどのマクロで、
A列全体を非表示にしたかったのであれば、Range.EinterColumnプロパティを組み合わせて、


 Range("A1")EntireColumn.Hidden = True

とするか、Columnsプロパティを利用して、

 Columns(1).Hidden = True

としてください。

1行目全体を非表示にしたかったのであれば、Range.EnterRowプロパティを組み合わせて、


 Range("A1")EntireRow.Hidden = True

とするか、Rowsプロパティを利用して、

 Rows(1).Hidden = True

としてください。

単独セルを表すRangeか行全体・列全体を表すRangeか

Excelマクロを作る場合に、もっとも良く使われるオブジェクトは、Rangeオブジェクトです。

Rangeは良く使われるオブジェクトではありますが、実は難しいオブジェクトでもあります。少なくともExcelの主要なオブジェクトである
  Application
  Workbook
  Worksheet
  Range
の中で、一番難しいオブジェクトといえます。

その難しさの原因の一つとして、Rangeオブジェクトにいくつかの種類があることがあげられます。

具体的には、単独の1つのセルを表すRangeと、行全体や列全体を表すRangeとでは、性質が異なることがあるのです。
この記事で扱っているRangeオブジェクトのHiddenプロパティもそんな例です。

Hiddenプロパティは、行全体または列全体を表すRangeオブジェクトでだけ有効なプロパティなのです。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » RangeクラスのHiddenプロパティを設定できません。とは?

TrackBack:4

TrackBack URL
RangeとColumnsの違い from インストラクターのネタ帳
Rangeプロパティでは個々のセルを表すRangeを単一オブジェクトとして持つRangeコレクション、Columnsプロパティでは列全体のセルを表すRan...
VBAでテーブルの列を非表示にしたい from インストラクターのネタ帳
Excel VBAでテーブル機能の列を非表示にするには「.Range.EntireColumn.Hidden = True」というオブジェクト式で列全体を...
Resizeプロパティで行全体を? from インストラクターのネタ帳
行全体を表すRangeオブジェクトを取得するなら、Range.ResizeプロパティよりもRange.EntireRowプロパティをおすすめします。
アクティブセルから下の行を非表示にするExcelマクロ from インストラクターのネタ帳
アクティブセルから下の行を非表示にするExcelマクロをご紹介しています。

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » RangeクラスのHiddenプロパティを設定できません。とは?

「行・列を表すRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.