none
Excel2016(mac)でCommandBarが作成できない。 RRS feed

  • 質問

  • Excel2016 mac版(昨日最新の修正を適用済み)でCommandBarが作成できません。

    Windowsで動作しているVBAアプリをMacへ移植しようとしたところ、エラーとなり、問題箇所を特定しました。

    下記のとおり2つの問題のサンプルコードを添付します。

    これらは、Mac版ではサポートされていない機能なのでしょうか。(そんなことはないと思いますが・・)

    少なくとも私がWEB検索する限りでは、同様の問題は報告されていないようです。 

    この問題をマイクロソフトに報告するには、どのようにすればよいのでしょうか。

    問題1 Mac Excel2016では、CommandBarに独自のサブメニューが作成できない。 

    下記例のCメニューの下にC1、C2を設定できない。  ->  サンプル Test_1

    A
    B
    C  -- C1
            C2

    '-----------------------------------------------------------
    'Mac Excel2016ではCommandBarにサブメニューが設定できない。
    '-----------------------------------------------------------
    Sub Test_1()
        
        Dim NewM As Variant, NewC As Variant
        Set NewM = Application.CommandBars.Add(Name:=MySCM_Name, Position:=msoBarPopup, Temporary:=True)
    
        Set NewC = NewM.Controls.Add
        With NewC
            .Caption = "A"
        End With
    
        Set NewC = NewM.Controls.Add
        With NewC
            .Caption = "B"
        End With
    
        '//  以下でエラー: MAC Excel2016では、サブメニューが設定できない!
        '//  NewM.Controls.Add(Type:=msoControlPopup)の戻り値は、Window版では、CommandBarPopup型であるのに、
        '//  MACでは、CommnadBarControl型が返される。
        '//
        Set NewC = NewM.Controls.Add(Type:=msoControlPopup)
        With NewC
            .Caption = "C"
            .BeginGroup = True
            With NewC.Controls.Add()
                .Caption = "C-1"
            End With
    
            With NewC.Controls.Add()
                .Caption = "C-2"
            End With
        End With
        NewM.ShowPopup
    End Sub
    


    問題2 Mac Excel2016では、独自のCommandBarを作成し、それをShowPopupメソッドで
    実行しても、何も表示されない。  -> サンプル Test_2

    '-----------------------------------------------------------
    'Mac Excel2016では、CommandBarをShowPopupで表示できない。
    '-----------------------------------------------------------
    Sub Test_2()
        Dim NewM As Variant, NewC As Variant
        Set NewM = Application.CommandBars.Add(Name:=MySCM_Name, Position:=msoBarPopup, Temporary:=True)
    
        Set NewC = NewM.Controls.Add
        With NewC
            .Caption = "A"
        End With
    
        Set NewC = NewM.Controls.Add
        With NewC
            .Caption = "B"
        End With
    
    '// サブメニューの追加は止める
    '    Set NewC = NewM.Controls.Add(Type:=msoControlPopup)
    '    With NewC
    '        .Caption = "C"
    '        .BeginGroup = True
    '        With NewC.Controls.Add()
    '            .Caption = "C-1"
    '        End With
    '
    '        With NewC.Controls.Add()
    '            .Caption = "C-2"
    '        End With
    '    End With
    
        '// サブメニューを作成するのをあきらめて実行したが、ShowPopupしてもMACでは、何を表示されない。
        NewM.ShowPopup
    End Sub

    2017年5月12日 5:10