[[20250827135838]] 『VBA:ワークシートをオブジェクト名で指定』(純丸) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『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.