Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12216 / 13644 ツリー ←次へ | 前へ→

【11683】メニューバーに追加で質問。 困ったチャン 04/3/14(日) 16:03 質問
【11687】Re:メニューバーに追加で質問。 りん 04/3/14(日) 20:54 回答
【11689】Re:メニューバーに追加で質問。 困ったチャン 04/3/14(日) 21:26 お礼

【11683】メニューバーに追加で質問。
質問  困ったチャン  - 04/3/14(日) 16:03 -

引用なし
パスワード
   Sub 伝票入力の追加()
'メニューバーに「伝票入力」を追加
  Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
    msoControlPopup, before:=12
  CommandBars("Worksheet Menu Bar").Controls(12).Caption = "伝票入力"
    Application.CommandBars("ユーザー設定のポップアップ 2").Controls.Add Type:= _
      msoControlButton, before:=1
    CommandBars("ユーザー設定のポップアップ 2").Controls(1).Caption = "入金伝票"
    CommandBars("ユーザー設定のポップアップ 2").Controls(1).OnAction = "入金伝票を表示"
    Application.CommandBars("ユーザー設定のポップアップ 2").Controls.Add Type:= _
      msoControlButton, before:=2
    CommandBars("ユーザー設定のポップアップ 2").Controls(2).Caption = "出金伝票"
    CommandBars("ユーザー設定のポップアップ 2").Controls(2).OnAction = "出金伝票を表示"
    Application.CommandBars("ユーザー設定のポップアップ 2").Controls.Add Type:= _
      msoControlButton, before:=3
    CommandBars("ユーザー設定のポップアップ 2").Controls(3).Caption = "振替伝票"
    CommandBars("ユーザー設定のポップアップ 2").Controls(3).OnAction = "振替伝票を表示"
End Sub

というプログラム文で実行すると5行目から7行目にデバッグがでてとまってしまいます。メニューバーに追加するためのプログラムはどのように直せばいいのですか?回答お願いします。

【11687】Re:メニューバーに追加で質問。
回答  りん E-MAIL  - 04/3/14(日) 20:54 -

引用なし
パスワード
   困ったチャン さん、こんばんわ。

>というプログラム文で実行すると5行目から7行目にデバッグがでてとまってしまいます。メニューバーに追加するためのプログラムはどのように直せばいいのですか?回答お願いします。

 どんなエラーになったのかわからないので、追加オブジェクトをオブジェクト変数にSet & OnActionに割り当てるマクロ名をフルネームに。なお、割り当てるマクロは標準モジュールにあるものとします。

Sub 伝票入力の追加()
  Dim cp1 As CommandBarPopup
  Dim cb1 As CommandBarButton
  '
  'メニューバーに「伝票入力」を追加
  Set cp1 = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup, before:=12)
  cp1.Caption = "伝票入力"
  cp1.BeginGroup = True '一応区切り線を入れておく
  '追加 Button1
  Set cb1 = cp1.Controls.Add(Type:=msoControlButton)
    cb1.Caption = "入金伝票"
    cb1.OnAction = ThisWorkbook.Name & "!入金伝票を表示"
  '追加 Button2
  Set cb1 = cp1.Controls.Add(Type:=msoControlButton)
    cb1.Caption = "出金伝票"
    cb1.OnAction = ThisWorkbook.Name & "!出金伝票を表示"
  '追加 Button3
  Set cb1 = cp1.Controls.Add(Type:=msoControlButton)
    cb1.Caption = "振替伝票"
    cb1.OnAction = ThisWorkbook.Name & "!振替伝票を表示"
  '開放
  Set cb1 = Nothing: Set cp1 = Nothing
End Sub

こんな感じです。

【11689】Re:メニューバーに追加で質問。
お礼  困ったチャン  - 04/3/14(日) 21:26 -

引用なし
パスワード
   ▼りん さん:
>困ったチャン さん、こんばんわ。
>
>>というプログラム文で実行すると5行目から7行目にデバッグがでてとまってしまいます。メニューバーに追加するためのプログラムはどのように直せばいいのですか?回答お願いします。
>
> どんなエラーになったのかわからないので、追加オブジェクトをオブジェクト変数にSet & OnActionに割り当てるマクロ名をフルネームに。なお、割り当てるマクロは標準モジュールにあるものとします。
>
>Sub 伝票入力の追加()
>  Dim cp1 As CommandBarPopup
>  Dim cb1 As CommandBarButton
>  '
>  'メニューバーに「伝票入力」を追加
>  Set cp1 = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup, before:=12)
>  cp1.Caption = "伝票入力"
>  cp1.BeginGroup = True '一応区切り線を入れておく
>  '追加 Button1
>  Set cb1 = cp1.Controls.Add(Type:=msoControlButton)
>    cb1.Caption = "入金伝票"
>    cb1.OnAction = ThisWorkbook.Name & "!入金伝票を表示"
>  '追加 Button2
>  Set cb1 = cp1.Controls.Add(Type:=msoControlButton)
>    cb1.Caption = "出金伝票"
>    cb1.OnAction = ThisWorkbook.Name & "!出金伝票を表示"
>  '追加 Button3
>  Set cb1 = cp1.Controls.Add(Type:=msoControlButton)
>    cb1.Caption = "振替伝票"
>    cb1.OnAction = ThisWorkbook.Name & "!振替伝票を表示"
>  '開放
>  Set cb1 = Nothing: Set cp1 = Nothing
>End Sub
>
>こんな感じです。

りんさん。こんばんわ。エラーについてですが、エラーは引数が不正です。とかいうものだと思います。プログラム書いていただきありがとうございます。このプログラムをもとに試して見ます。

12216 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free