Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » ActiveSheet.でインテリセンスを使う・自動メンバー表示させる裏技

ActiveSheet.でインテリセンスを使う・自動メンバー表示させる裏技

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

Excel VBA(Visual Basic for Applications)で、アクティブなシートを取得するActiveSheetプロパティは、

ActiveSheet.でインテリセンスを使う裏技

もっともよく使われるプロパティの一つでしょう。

ですが、戻りがObjectとして定義されているために、コーディング時にインテリセンスが効かず、自動メンバー表示が行われないという欠点があります。

[スポンサードリンク]

「ActiveSheet.」の直下だけで自動メンバー表示が行われないのならばいいのですが、「ActiveSheet.」に続くすべてのオブジェクト式でインテリセンスが使えないのが困ります。

考えながらコーディングをする場合、自動メンバー表示機能は使えるほうがもちろん便利ですから、私は実は裏技的な方法を使うことで「ActiveSheet.」につづくオブジェク式を書く場合にも、インテリセンス機能を活用しています。

ActiveSheet.でインテリセンスを使う裏技

どうしているかというと、以下のような方法です。
▼操作概要:ActiveSheetで自動メンバー表示されるようにする
コーディング時に、
  Dim ActiveSheet As Worksheet
のように、
ActiveSheetという名前でWorksheet型オブジェクト変数の宣言を入れる

「ActiveSheet」という名前で、プロシージャレベルでWorksheet型のオブジェクト変数を宣言しておけば、そのプロシージャでは「ActiveSheet.」で自動メンバー表示が行われるようになります。

ActiveSheet.でインテリセンスを使う裏技

もちろんプロシージャレベルで宣言すれば、プロシージャレベルで「ActiveSheet.」のインテリセンスが使えるようになります。

一つ、とても重要な注意点があります。
実行前には、
  Dim ActiveSheet As Worksheet
をコメントアウト
しなければなりません。
コメントアウトしなかった場合には、
「オブジェクト変数またはWithブロック変数が宣言されていません。」
という実行時エラーが発生してしまいます。

ActiveSheetをオブジェクト変数にセットすればインテリセンスが使える

裏技ではなく、真面目に対処するなら、以下のようにWorksheet型のオブジェクト変数を用意しておいて、ActiveSheetプロパティを使って、オブジェクト変数に、アクティブなワークシートを表すWorksheetオブジェクトをセットして、以後はオブジェクト変数に続ける形でオブジェクト式を記述すれば、インテリセンスが効きます。

Sub samp()

 Dim sh As Worksheet

 Set sh = ActiveSheet

End Sub
[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » ActiveSheet.でインテリセンスを使う・自動メンバー表示させる裏技

「Sheets・Worksheet」の記事一覧

検索


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

.