ActiveSheetで入力補完(インテリセンス)が効かない理由と対処法
今回はActiveSheetで入力補完(インテリセンス)が効かない理由と対処法を紹介します。
ActiveSheetで入力補完(インテリセンス)が効かない理由
結論からいうとActiveSheetの返り値がWorksheet型でないためです。
ActiveSheetはObject型を返します。
VBEでF2キーを押すと画像のようなオブジェクトブラウザーと呼ばれるウィンドウが開きます。
ここでActiveSheetと検索するとActiveSheetプロパティが見つかります。
そしてここには「Property ActiveSheet As Object」と書かれています。
これはActiveSheetプロパティはObject型を返すという意味です。
Object型は色々な型を入れられる、いわばブラックボックスのようなものなので当然インテリセンスを表示することができないのです。
これが例えばActiveWorkbookであればWorkbook型を返すため、このようにインテリセンスが表示されます。
ActiveSheetで入力補完(インテリセンス)を効かせる方法
Function GetActSht() As Worksheet
'''ActiveSheetをWorkSheet型で返す汎用関数
Set GetActSht = ActiveSheet
End Function
設定などでは解消できないのですが、汎用関数を用意しておくことでインテリセンスを効かせることができます。
例えば上のようにGetActShtという汎用関数をモジュール内に用意しておきます。
この関数は「As Worksheet」と指定しているのでActiveSheetをWorksheet型で返します。
これを用意しておくと、上の画像のようにGetActShtと書けばインテリセンスの効いたActiveSheetを取得することができます。