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行の内容があるデータベースがあり、まあ「開発」タブ→「マクロ」から選んで実行すればいいのかも
しれませんが、どうしたものかと悩んでおります。