Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » RangeクラスのOutlineLevelプロパティを取得できません。とは

RangeクラスのOutlineLevelプロパティを取得できません。とは

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2411(ビルド18217.20000クイック実行)ベータチャネル

「Excel VBA RangeクラスのOutlineLevelプロパティを取得できません とは」
といった検索が行われていました。

Excel VBAで、アウトラインレベルを取得しようとした方による検索でしょう。

[スポンサードリンク]

「RangeクラスのOutlineLevelプロパティを取得できません。」エラーの発生するサンプルマクロ

まず、どのようなときにこの実行時エラーになるかを確認しましょう。

以下のExcelマクロで、
「RangeクラスのOutlineLevelプロパティを取得できません。」
実行時エラーが発生します。

Sub sample()
 MsgBox ActiveCell.OutlineLevel
End Sub

RangeオブジェクトのOutlineLevelプロパティを取得するだけのコードですが、

実行時エラーが発生してしまいます。

「RangeクラスのOutlineLevelプロパティを取得できません。」エラーの発生原因と回避方法

先ほどのマクロは、以下のように修正すれば実行時エラーが発生しなくなり、行のアウトラインレベルがメッセージボックスに表示されます。

Sub sample()
 MsgBox ActiveCell.EntireRow.OutlineLevel
End Sub

Rangeオブジェクトは、Excel VBAでもっともよく使われるオブジェクトですが、実は難易度の高いオブジェクトでもあります。

その原因の1つが、行全体や列全体を表すオブジェクトも、単独のセルを表すオブジェクトも、どちらもRangeであることです。

OutlineLevelプロパティは、行全体や列全体を表すRangeの場合に使えますが、単独のセルを表すRangeでは使えないのです。

行全体を表すRangeを取得するRange.EntireRowプロパティや、列全体を取得するRange.EntireColumnプロパティなどを使えば、
「RangeクラスのOutlineLevelプロパティを取得できません。」
エラーは発生しなくなります。

最終更新日時:2024-11-12 13:55

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » RangeクラスのOutlineLevelプロパティを取得できません。とは

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

検索


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

.