次の方法で共有

Excel2010まで表示されていた自作マクロボタンが、Excel2013では表示されない

Anonymous
2014-04-26T02:20:19+00:00

4月に異動となり、新席のPCではWin7、Excelは2013となりました。

(3月までのPCはビスタ、Excel2010です)

最近困ったことが1つ起きまして、

「Excel2010までは表示されていた自作マクロボタンが、Excel2013では表示されない」

という現象です。

※下記のようなコードにより、「アドイン」タブの「ユーザー設定のツールバー」内に

  ボタン群を表示させていました。

Dim Xbar As CommandBar

Dim Xcmdbctrl As CommandBarControl

Sub Auto_Open()

    [MAINmc].初期値

    Call AddUsrCmdBr

    Worksheets("せつめい").Select

    ActiveWindow.ScrollColumn = 1

    ActiveWindow.ScrollRow = 1

End Sub

'AddUserCmdBr

Sub AddUsrCmdBr()

    Dim BtnCp_st(10) As String, BtnFd(10) As String, BtnAc_st(10) As String

    BtnCp_st(1) = "文字列の部分削除": BtnFd(1) = "Dl_StPrtPic": BtnAc_st(1) = "CUT_PrtOfSt"

    BtnCp_st(2) = "無駄な列の削除": BtnFd(2) = "Dl_EmptyClmnPic": BtnAc_st(2) = "CUT_WastefulC"

    BtnCp_st(3) = "無駄な行の削除": BtnFd(3) = "Dl_EmptyRwPic": BtnAc_st(3) = "CUT_WastefulR"

    BtnCp_st(4) = "文字列を上セルにも分割": BtnFd(4) = "Prs_StForUpPic": BtnAc_st(4) = "Divide_1Ce"

    BtnCp_st(5) = "前後の空白削除": BtnFd(5) = "Dl_EmptyStSdPic": BtnAc_st(5) = "CUTSpace_文前後"

    BtnCp_st(6) = "数字の前に0付": BtnFd(6) = "AddZeroPic": BtnAc_st(6) = "Add_MaeZERO"

    BtnCp_st(7) = "文字型数字を純数字に": BtnFd(7) = "CngNUMPic": BtnAc_st(7) = "StrngToNmbrs"

    'UserCmdBrが残っていれば削除

    Call DltUsrCmdbr

    'MkUsrCmdBr

    Set Xbar = Application.CommandBars.Add(Name:=Xst, temporary:=True)

    'MkBttn

    For Y = 1 To UBound(BtnCp_st)

        If BtnCp_st(Y) = "" Then Exit For

        Set Xcmdbctrl = Xbar.Controls.Add(Type:=msoControlButton)

        With Xcmdbctrl

            .BeginGroup = True

            .Caption = BtnCp_st(Y)

            .FaceId = 1     '仮用空白絵柄

            .OnAction = BtnAc_st(Y)

        End With

        '絵柄のコピ-

        flg_ws.Shapes(BtnFd(Y)).CopyPicture

        Xcmdbctrl.PasteFace

    Next

    'ShwCmdBr

    With Application.CommandBars(Xst)

        .Visible = True

        .Position = msoBarRight

    End With

    MsgBox "画面右側に文字列操作のボタンが" & vbCr & _

           "挿入されます。(処理対象のブックに切替えて下さい)"

End Sub

※「画面右側に文字列操作のボタン~」とあるのは、

 Excel2003ではExcelの画面右端にタテにボタン群が表示されていたためです。

※自作マクロボタン数は、BtnCp_st(1) = "文字列の部分削除" ~ BtnCp_st(7) = "文字型数字を純数字に"

 までの7コです。

 Excel2013では、このマクロを記述してあるThisWorkBookでは正常にボタン群が表示されるのですが、

別のブックのシートについて、「無駄な行の削除」処理を実行しようと思い、別のブックを開き、表示すると、

ボタン群がなくなっています。

 先日は、新席のPCで、「無駄な行の削除」マクロが使えなかったために無駄な行の削除 処理を手動で

120回繰り返し行うはめになりました。

(無駄な行を選んで、右クリック→削除)-これを120回やったわけです。

 次回は2000行の内容があるデータベースがあり、まあ「開発」タブ→「マクロ」から選んで実行すればいいのかも

しれませんが、どうしたものかと悩んでおります。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

15 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-04-28T12:15:55+00:00

    大沢様、ご回答頂きありがとうございます。

     ネットで色々調べてみたところ、どうもMDI(EXCEL2010まで)とSDI(EXCEL2013)が

    原因なのではーと思っています。

     つまり、EXCEL2010まではMulti Display Interface なので1Excelから複数のExcelファイルが

    開かれている。他方、Excel2013はSingle Display Interfaceなので1Excelからは1つのExcelファイル

    しか開けない。つまり、別ファイルは別のExcelから開かれているのでは、と。

     別のExcelから開かれているファイルでは自作ボタンが表示されないのは「当たり前」と

    いうことになります。

     なんとか別ファイル上でも自作ボタンを使用したいので、ご紹介されたVBAのフォーラムに同じ質問

    を投稿させていただきました。

    この回答は役に立ちましたか?

    2 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2014-05-05T06:31:22+00:00

    自分なりに解決策を考えてみました。

    方法1.XMLを使用してリボン内に自作ボタンを組み込む。

         1度前に簡単なマクロで試行してみて成功したのですが、本格的なマクロを登録するのは結構面倒そう。

    方法2.ワークブックイベント(WorkBook_Activate( ) )を作成し、他のブックが読み込まれるたびに独自ツールバー、自作ボタンを組み込む。

         他のブックが読み込まれるたびに独自ツールバー、自作ボタンを作成し、組み込むのはいささかやり過ぎ。自作ボタンを使わないブックを読み込む場合もあるし、別のマクロファイルを読み込んだ場合、WorkBook_Activate( ) が2つ起動することとなり、原因不明の不具合が発生する可能性が出てくる。

    方法3.自作ボタンをやめて、マウスの右クリックメニューにマクロを登録する。

        xlstart内のマクロファイルからすでに4つのマクロメニューを組み込んでおり、これ以上登録すると右クリックメニューが多すぎてしまう。

    というわけで、未だに結論が出せません。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2014-05-01T15:13:56+00:00

    投稿有難うございます。さっそくに参考ページへ行ってみたのですが、EXCEL開発の専門用語

    がしばしば含まれているようで内容がよくわかりませんでした。

     MicoroSoftの解説はVBAヘルプを含めてますます難解になってきており、解説を解説してくれる

    参考書が必要となっています。

    まあつまりは、

    >各ブックは独自のリボンを持つ様式(SDI)へEXCELを変更した

    ということですね。だから読み込んだマクロなしブックが共有で使えてた自作ボタンが見えなくなった。

    現在は「EXCEL2010へ、バージョンダウンできるならしたい。」ーとマジで考えている状況です。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2014-05-01T08:50:58+00:00

    かまった さん、こんにちは。

    VBA フォーラムに投稿をされたのですね。(おそらく「こちらのスレッド」かと思います)

    書かれているように、Excel 2013 ではインターフェースが SDI に変わっていることが原因なのかもしれないですね。

    参考 : Office 2013 の開発者のための新機能

    上記ページより引用 : Excel 2013 におけるシングル ドキュメント インターフェイス (SDI) への変更は、プログラミングに影響します。SDI によって、各ブックは独自のトップレベル アプリ ウィンドウおよび独自の対応するリボンを持つことになります。

    回避策など、何か良い情報が見つかると良いですね。

    (こちらではあまりお力になれずごめんなさい。。)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2014-04-28T08:15:57+00:00

    かまった さん、こんにちは。

    マイクロソフト コミュニティをご利用いただき、ありがとうございます。

    Excel 2010 まで表示できていた自作のマクロボタンが、 Excel 2013 で開くと表示されないということなのですね。

    こちらで原因や対処方法などを調べてみたのですが、該当しそうな情報が見つからなかったです。。

    せっかく質問をしていただいたのに、お役にたてなくてすみません。。

    マクロの質問については MSDN フォーラムに 専門の VBA フォーラムがあるので、こちらのフォーラムにも同じ質問を投稿してみると経験がある方から有力な情報が集まりやすくなるかもしれません。

    Visual Basic for Application (VBA)

    もし、よろしければ活用をしてみてくださいね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません