即効テクニック |
コマンドバーはツールバー、メニューバー、ショートカットメニューの3種類に大別されます。対象のコマンドバーの種類を調べるにはTypeプロパティを使用します。 ●詳細● 使用される定数は下の一覧表のとおりです。 構文 Object.Type Type 取得のみ 設定項目 内容 Object CommandBarオブジェクト [省略不可] ・Typeプロパティで使用する定数一覧(MsoBarTypeクラス) 定数 値 内容 mosBarTypeNormal 0 ツールバー mosBarTypeMenuBar 1 メニューバー mosBarTypepopup 2 ショートカットメニュー 次のサンプルは、コマンドバー一覧をワークシート上作成します。 ●サンプル● Sub TypeSamp1() Dim myCB As CommandBar Dim i As Integer Range("A1").Value = "Index" Range("B1").Value = "名前" Range("C1").Value = "名前(日本語)" Range("D1").Value = "種類(組み込み定数)" i = 1 For Each myCB In CommandBars i = i + 1 Cells(i, 1).Value = myCB.Index 'インデックス番号 Cells(i, 2).Value = myCB.Name '名前 Cells(i, 3).Value = myCB.NameLocal '名前(日本語) Select Case myCB.Type '種類(組み込み定数) Case 0 Cells(i, 4) = "msoBarTypeNormal" Case 1 Cells(i, 4) = "msoBarTypeMenuBar" Case 2 Cells(i, 4) = "msoBarTypePopup" End Select Next myCB End Sub コードの実行すると一覧表が作成されます。 Indexが90番のショートカットメニュー「コマンドの追加」は、Excel起動後に一度もツールバーの[ユーザー設定]ダイアログボックスを表示していない場合にのみ作成されます。また、ユーザー設定のツールバーが作成されている場合、それもコマンドバーのコレクションに含まれるため、Index値は変わってきます。 これらの理由から、コマンドバーを参照する際にはNameプロパティで識別するようにしてください。