『VBA:ワークシートをオブジェクト名で指定』(純丸)
シート名が Sheet1 のシートを選択するには Worksheets("Sheet1").Activate で、 そのオブジェクト名が Sheet1 の場合は Sheet1.Activate でも選択できるわけですが、
このオブジェクト名をセルから取得したいのですが、 例えば A1セルに Sheet1 と入力されていて Range("A1").Value.Activate ではエラーになります。 多分、VBAProjectのメンバーである Sheet1 は、セルから取得した文字列の Sheet1 とは違うもの、というのが エラーの理由だとは思うのですがその先がわかりません。
これをエラーにならない指定の仕方があったら教えて下さい。
無ければシートをループして、CodeNameプロパティが一致するシートを探し出すような事をするのだと思いますが。 Dim sh As Worksheet For Each sh In Worksheets If sh.CodeName = Range("A1").Value Then sh.Activate Exit Sub End If Next sh
よろしくお願いします。
< 使用 Excel:Excel2019、使用 OS:Windows11 >
こんな感じになりますが、無理やり感がありますね...
ThisWorkbook.VBProject.VBComponents([a1]).Activate (jindon) 2025/08/27(水) 14:41:31
jindonさん、ありがとうございます。 いろいろ調べたのですが、VBComponents にはたどり着けられませんでした。 ループするより速いと思うので使おうかと思います。 (純丸) 2025/08/27(水) 15:01:42
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.