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

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

2024年9月13日

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上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/12/02 20:25:22時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい