目安箱 IV

目安箱投稿のルールはこちらをごらんください。
ご意見は電子メールで承っています。
「目安箱」は質問禁止です。技術的な質問はそれぞれの質問箱へどうぞ。

迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
86 / 277 ←次へ | 前へ→

【206】Re:ちょっと気になる現象4
Excel  ichinose  - 07/9/22(土) 20:31 -

引用なし
パスワード
   >新規ブックの標準モジュールに
>
>'===============================================================
>Sub main()
>  Dim sht As Worksheet
>  Set sht = Worksheets.Add
>  MsgBox sht.CodeName
>End Sub
>
>上記のコードですが、VBEを起動した状態で実行すると
>正常に追加されたシートのオブジェクト名を表示しますが、
>VBEを起動していない状態で実行すると追加されたシートのオブジェクト名が
>表示されません(Msgboxでは、何も表示されません)。

新しいバグの発見かな!! と一瞬喜んだのですが(喜ぶことではなかった)、
確認したらいくつものサイトで紹介されていました。

シート名は、ユーザーが容易に変更出来てしまいますが、オブジェクト名までは
滅多に変更されないので簡単な作りのVBAコードではCodenameを引用すると
便利な場合がありますよね。

解決方法も既にそれぞれのサイトで出ていましたが、
私も一案。


'=================================================================
Sub main()
  Dim sht As Worksheet
  Set sht = Worksheets.Add
  MsgBox get_codename(sht)
End Sub
'=================================================================
Function get_codename(sht As Worksheet) As String
  CommandBars("Control Toolbox").FindControl(ID:=222).Execute
  SendKeys "%{F4}", True
  get_codename = sht.CodeName
End Function

上記のmainは、VBEが起動されていない状態でも正しく
Codenameが表示されました。
EXCEL2002で確認。


Codenameプロパティは、
1,959 hits

【205】ちょっと気になる現象4 ichinose 07/9/22(土) 20:17 Excel[未読]
【206】Re:ちょっと気になる現象4 ichinose 07/9/22(土) 20:31 Excel[未読]
【207】Re:ちょっと気になる現象4 Jaka 07/9/27(木) 10:56 Excel[未読]
【208】Re:ちょっと気になる現象4 Jaka 07/9/27(木) 11:05 Excel[未読]

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
86 / 277 ←次へ | 前へ→
ページ:  ┃  記事番号:   
0
(SS)C-BOARD v3.8 is Free