Excel VBA質問箱 IV

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

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


12005 / 13646 ツリー ←次へ | 前へ→

【12890】参考までに教えてください。 シェフチェンコ 04/4/18(日) 21:23 質問
【12891】Re:参考までに教えてください。 IROC 04/4/19(月) 11:09 回答
【12897】Re:参考までに教えてください。 シェフチェンコ 04/4/19(月) 12:40 発言
【12898】Re:参考までに教えてください。 ichinose 04/4/19(月) 13:06 発言
【12899】Re:参考までに教えてください。 IROC 04/4/19(月) 13:36 回答

【12890】参考までに教えてください。
質問  シェフチェンコ  - 04/4/18(日) 21:23 -

引用なし
パスワード
   参考までに教えてほしいのですが、会社のパソコンで組込メニューをつくりそこにマクロを貼り付けたのですが、そのデータをそのままFDに保存して自宅に持ち帰ってきたところ、データを開きましたがそのメニューは消えてしまいました。保存のやり方や設定があるのでしょうか?これからもほかのPCに入れて使いたいと思うので教えてください。

【12891】Re:参考までに教えてください。
回答  IROC  - 04/4/19(月) 11:09 -

引用なし
パスワード
   メニュー や ツールバー のカスタマイズは、
各パソコンごとの設定です。
ブック固有のものではありません。

ある特定のブックだけ、
メニュー や ツールバー をカスタムしたいときは、
それらも、マクロで行う必要があります。

その際は、ブックオープン時に、メニュー作成
ブッククローズ時に、メニューを初期化
します。

また、複数のブックを同時に開いているときの為に、
ブックのアクティブイベントで、メニュー表示
ブックの非アクティブイベントで、メニューを非表示(削除や初期化ではない)
にすると便利です。

【12897】Re:参考までに教えてください。
発言  シェフチェンコ  - 04/4/19(月) 12:40 -

引用なし
パスワード
   ▼IROC さん:
大体わかりました^^。ただその設定は難しいのでしょうか?参考になるようなものがあれば教えてください。よろしくお願いします。初心者名もので^^;

【12898】Re:参考までに教えてください。
発言  ichinose  - 04/4/19(月) 13:06 -

引用なし
パスワード
   シェフチェンコ さん、IROC さん、こんにちは。

>大体わかりました^^。ただその設定は難しいのでしょうか?参考になるようなものがあれば教えてください。よろしくお願いします。初心者名もので^^;

ということは、手動操作で「ツール」---「ユーザー設定」のダイアログを
利用してカスタムツールバーの作成やコマンドボタンの登録及び、マクロ登録を
行っていますよね?

同じダイアログの「ツール」タブに「添付」というボタンがあります。
これをクリックして作成したツールバーをブックに添付させるという方法が
あります。(ダイアログを見れば、大体の使用方法はおわかりになると思います)

添付した後に、ブックを保存して下さい。

これで他のPCにブックを移動して開いても作成したツールバーが表示される
と思います。

ツールバーの作成やコマンドボタンの作成のVBAは、
IROC さんの回答を待ってください。

【12899】Re:参考までに教えてください。
回答  IROC  - 04/4/19(月) 13:36 -

引用なし
パスワード
   サンプルです。


[標準モジュール]

Sub Test1()
  MsgBox "Test1 です。"
End Sub

Sub Test2()
  MsgBox "Test2 です。"
End Sub


[ThisWorkbookモジュール]

Private Sub Workbook_Open()
Dim myCB As CommandBar
Dim myCBCtrl As CommandBarControl

On Error Resume Next
  'まず初期化
  Application.CommandBars("Worksheet Menu Bar").Reset
   
  '対象とするメニューを変数にセット
  Set myCB = Application.CommandBars("Worksheet Menu Bar")
  
  '追加するメニュー(Sample1 というポップアップメニュー)
  Set myCBCtrl = myCB.Controls.Add(Type:=msoControlPopup)
    myCBCtrl.Caption = "Sample1"
    'myCBCtrl.BeginGroup = True '区切り線
    

  'Sample1のメニューに追加するボタン1
  Set myCBCtrl = myCB.Controls("Sample1").Controls.Add(Type:=msoControlButton)
    myCBCtrl.Caption = "てすと1"
    myCBCtrl.OnAction = "Test1"
  
  'Sample1のメニューに追加するボタン2
  Set myCBCtrl = myCB.Controls("Sample1").Controls.Add(Type:=msoControlButton)
    myCBCtrl.Caption = "てすと2"
    myCBCtrl.OnAction = "Test2"

  Set myCB = Nothing
  Set myCBCtrl = Nothing

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Application.CommandBars("Worksheet Menu Bar").Reset
End Sub


Private Sub Workbook_Activate()
On Error Resume Next
  Application.CommandBars("Worksheet Menu Bar").Controls("Sample1").Visible = True
End Sub

Private Sub Workbook_Deactivate()
On Error Resume Next
  Application.CommandBars("Worksheet Menu Bar").Controls("Sample1").Visible = False
End Sub

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