このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

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

2024年3月9日

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

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

VBAが難しいと感じたら
ココナラにてマクロ(VBA)の作成代行を始めました。
ご依頼はこちらから

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

Posted by やろまい