ActiveSheetで入力補完(インテリセンス)が効かない理由と対処法

ActiveSheetで入力補完(インテリセンス)が効かない理由と対処法

今回はActiveSheetで入力補完(インテリセンス)が効かない理由と対処法を紹介します。

ActiveSheetで入力補完(インテリセンス)が効かない理由

結論からいうとActiveSheetの返り値がWorksheet型でないためです。

ActiveSheetはObject型を返します。

オブジェクトブラウザー

VBEでF2キーを押すと画像のようなオブジェクトブラウザーと呼ばれるウィンドウが開きます。

ここでActiveSheetと検索するとActiveSheetプロパティが見つかります。

そしてここには「Property ActiveSheet As Object」と書かれています。

これはActiveSheetプロパティはObject型を返すという意味です。

Object型は色々な型を入れられる、いわばブラックボックスのようなものなので当然インテリセンスを表示することができないのです。

ActiveWorkbookはインテリセンスが表示される

これが例えばActiveWorkbookであればWorkbook型を返すため、このようにインテリセンスが表示されます。

ActiveSheetで入力補完(インテリセンス)を効かせる方法

Function GetActSht() As Worksheet
    '''ActiveSheetをWorkSheet型で返す汎用関数
    Set GetActSht = ActiveSheet
End Function

設定などでは解消できないのですが、汎用関数を用意しておくことでインテリセンスを効かせることができます。

例えば上のようにGetActShtという汎用関数をモジュール内に用意しておきます。
この関数は「As Worksheet」と指定しているのでActiveSheetをWorksheet型で返します。

これを用意しておくと、上の画像のようにGetActShtと書けばインテリセンスの効いたActiveSheetを取得することができます。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらってはいかがでしょう?
VBAの作成依頼はこちらから

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2023/06/06 16:32:04時点 Amazon調べ-詳細)

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい