独自ツールバーの使用について
- Excel2000 WindowsXPを使用しており、独自のカスタムツールバーを作成しました。しかし、そのツールバーから特定のVBAマクロを実行すると正常に動作しないことが判明しました。
- 現在の問題は、独自のカスタムツールバーからは正常に動作しないVBAマクロを使用しながら、VBA給与計算ソフトを実行する方法です。
- 最適な改善策をご指導いただけると幸いです。
- ベストアンサー
独自ツールバーの使用にかんして
Excel2000 windowsXPを使ってます。 現状---------- 1)標準の「Worksheet Menu Bar」をカスタマイズして、独自のCustomMenuBarを作成しました。 2)そしてthisworbook に次のように書き Private Sub Workbook_Open() Application.ScreenUpdating = False Call CustomMenuBar Call UnVisibleAllCmdBars非表示 Application.ScreenUpdating = True End Sub 3)そのツールバーに業務ごとの処理マクロをつけました。 4)その中のひとつの、VBA給与計算マクロソフト(シェアウエア)をクリックして駆動すると正常に使用できません。 いろいろ調べた結果、独自のCustomMenuBarからは正常に作動せず、標準の「Worksheet Menu Bar」からのみ正常作動する 事が判明しました。 やりたいこと---------- 作った CustomMenuBar を使用しながら、VBA給与計算ソフトも同時に使えるようにしたいのです。最良の改善案をご指導 ください。
- aitaine
- お礼率43% (170/393)
- Visual Basic
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
最良かどうかは知りませんが、、、 私がカスタム ツールバーを作成する場合は、当該ワークブックがアクティブになった時だけカスタム ツールバーを表示させ、他のワークブックがアクティブになった時(当該ワークブックがディアクティブになった時)は非表示または削除するようにしていました。 参考までに。
関連するQ&A
- フォームにメニューを追加するには?
Excel2007のマクロ(VBA)を使って組んでいます。 フォーム上にニューを作りたいのですが、どうしてもExcel自体のアドインの下にメニューコマンドとして出来てしまい、フォーム(UserForm)の上にできません。 VBであれば、メニューEditorがありましたが、VBAではどうしたら良いのでしょうか。 下のプログラムはModule2に記述し、UserFormからCallしています。 Sub AddMyMenu() Dim Cbar As CommandBar Dim CbarCtrl As CommandBarControl Set Cbar = Application.CommandBars("Worksheet menu bar") : : End Sub どなたかご存知であれば教えていただけないでしょうか?
- ベストアンサー
- オフィス系ソフト
- 他のBOOKにマクロを反映させない様にするには?
Excel VBA初心者です。 エクセルのWorkbook Openイベントでワークシートメニューバーを非表示にしています。 マクロを作成したBookを開いてから他のBookを開いた場合はワークシートメニューバーは表示されるのですが(マクロは反映されない。)、他のBookを開いた後、マクロを作成したBookを開いた場合ワークシートメニューバーが他のBookまで非表示になってしまいます。(マクロが反映される。) マクロを作成したBookをその他Bookから常に独立させて(別のインスタンス?として開く??)開く様にするにはどうしたらよろしいでしょうか? 以下がOpenイベントです。 Private Sub Workbook_Open() Application.ScreenUpdating = False '動きを見せない Application.DisplayAlerts = False '選択画面をとばす Application.IgnoreRemoteRequests = True '他のアプリケーションを無視 Application.CommandBars("Worksheet Menu Bar").Enabled = False 'メニューバー非表示 ~以下長々とあります。~ End Sub 宜しくお願い致します。 ※メニューバー非表示は、社内に配布した場合にシート内容を変更されたくないためです。
- ベストアンサー
- オフィス系ソフト
- エクセル2003で作成したVBAを2007で使用したい
エクセル2003で下記のようなVBAを作成していました。 作成した物を使用者が印刷設定を変更できないように ブックを開くと同時に印刷ボタンなどを非表示にしていたのですが・・・ 2007でも使用出来るようにしたいと思ったのですが 2007ではこのままではエラーが出てしまうようです。 2007はまったく扱ったことがないのでどのようにすればよいかわかりません。 どなたかご教授いただけたらと思います。 Private Sub Workbook_Open() Application.DisplayStatusBar = False 'ステータスバー非表示 'ブックを開く時ページ設定と印刷を非表示 On Error Resume Next Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("ページ設定(&U)...").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷(&P)...").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷プレビュー(&V)").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷範囲(&T)").Enabled = False Application.CommandBars("Standard").Enabled = False End Sub
- ベストアンサー
- オフィス系ソフト
- マクロ 画面更新の停止
マクロを実行すると、画面がチカチカするため、更新を停止したいと思います。 画面更新を停止 Application.ScreenUpdating = False 画面更新を再開 Application.ScreenUpdating = True は、わかるのですが、 どこにどのように入れたらよいのかわかりません。 一応、たくさんのマクロを作って、下記のようなマクロで一気に実行しています。 このマクロを実行した時に、画面がチカチカしないようにしたいです。 分かる方おりましたら、お願いいたします。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ Sub マクロ実行() Call 摘要を削除 Call 摘要を削除する作業をすべてのシートで行う Call 集計シートを作る Call 集計 Call 集計シートをアクティブにする Call 戻るボタン設置 Call ボタン設置 End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルの数式バーが表示できなくなってしまいました
エクセルのマクロでメニューバーを非表示にする処理をしました。 ↓これがマクロのソースです。 Application.CommandBars("Worksheet Menu Bar").Enabled = Not .CommandBars("Worksheet Menu Bar").Enabled これを実行し、自分の思惑通りメニューバーが消えました。 しかし再び処理を実行し、メニューバーを表示させたのですが、数式バーが 表示されません。 どうすれば元に戻るでしょうか?
- ベストアンサー
- オフィス系ソフト
- WorkSheetの終了時にVBAを実行する方法
WorkSheetの終了時にVBAを実行する方法を教えて ください。 また、ボタンで表示されるメニューバーの「標準」を消す方法を 教えてください。
- ベストアンサー
- オフィス系ソフト
- VBAでセルごとにタイマーを使用できますか?
VBA初心者のものです。が・・・ 'B4に値が入ったら30分後にB4の値をB5に移動する。 '対象セルはB4~AZ4までで、セルごとに30分後に値を一段下移動する。 とういうようなマクロを作りたいのですが、 タイマーはシート単位になるのでしょうか? 現在はダブルクリックイベントにてセルの値を下げています。 Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean) Application.ScreenUpdating = False If Intersect(target, Range("b4:zz4")) Is Nothing Then Exit Sub Call 移動 End Sub Sub 移動() Dim c As Range Set c = ActiveCell ' 使用されている c.Select Selection.Cut c.Offset(1, 0).Select ActiveSheet.Paste End Sub 対象セルがたくさんあるので、なんとか自動処理できないものでしょうか?
- ベストアンサー
- Excel(エクセル)
- Excell2010VBAmacro互換性
マイクロソフトオフィス2010EXCELマクロについて質問させてください。 VBAマクロでマウス右クリック時にポップアップメニューを出し、 自作マクロを呼び出すようにしました。動作している。 このマクロを別PCのオフィス2013で動作させると、 マクロ内部ではポップアップメニューを作成動作している ようです(デバッグで通っていること確認)ようですが、 EXCEL画面上にはメニューが表示されません。 サンプルマクロは下記参照。 非互換または設定漏れがあるのでしょうか? サンプルマクロ Sheet1 --------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Application.CommandBars("Cell").Reset '右クリックメニューを初期設定に戻す Call set_RightMenu '右メニュー登録 End Sub Module1 --------------------------------------- Sub reset_RightMenu() ' '右クリックメニューを初期化 ' Application.CommandBars("Cell").Reset End Sub Public Sub set_RightMenu() ' ' 右クリックメニューを設定する ' Call reset_RightMenu '右クリックメニュー初期化 With Application.CommandBars("Cell") _ .Controls.Add() .BeginGroup = True .Caption = "menu0" .FaceId = 682 .OnAction = "menu0" End With With Application.CommandBars("Cell") _ .Controls.Add(Type:=msoControlPopup) .BeginGroup = True .Caption = "SubMenu" With .Controls.Add(Type:=msoControlButton) .Caption = "menu1" .FaceId = 931 .OnAction = "menu1" End With With .Controls.Add(Type:=msoControlButton) .Caption = "menu2" .FaceId = 931 .OnAction = "menu2" End With End With End Sub Sub menu0 MsgBox "****** Menu 0 *******" End Sub Sub menu1 MsgBox "****** Menu 1 *******" End Sub Sub menu2 MsgBox "****** Menu 2 *******" End Sub
- 締切済み
- インターネットビジネス
- Excelで追加した右クリックメニューが動かない
Windows Vista Excel2007です。 Sheet1に、次のようにVBAでプログラミングしたのですが、 '------------------------------------------------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Application.CommandBars("Cell").Reset With Application.CommandBars("Cell").Controls.Add() .Caption = "テスト" .OnAction = "test" End With End Sub Public Sub test() MsgBox "OK" End Sub '------------------------------------------------------------------------------- 右クリックメニューには追加できたのですが、その「テスト」メニューをクリックすると、 次のようなエラーダイアログが表示されます。 「マクロ'Book1!test'を実行できません。このブックでマクロが使用できないか、 またはすべてのマクロが無効になっている可能性があります。」 セキュリティセンターは「すべてのマクロを有効にする」に設定しており、他のマクロは正常に動作します。 どうしてエラーになるのか全く分かりません。 どなたか原因をご存知の方、ご教示をお願いします。
- ベストアンサー
- オフィス系ソフト
- 他のブックのマクロを呼び出すと他のブックの画面がアクティブになってしまう。
エクセルのツールバーにボタンを2つ作って他のブック1,2のマクロをそれぞれ割り当てました。 エクセルの表を開いておいてツールバーから マクロ1(編集・出力)を呼び出すとブック1がアクティブになってしまい真っ白のシートが見えてしまいます。 もう一方のブック2のマクロ2はフォームを表示するマクロですがそちらはバックに隠れています。 以前同様にシート上のCH(13)を消すマクロを使っていた時もバックに隠れていました。 Application.ScreenUpdating = Falseを入れましたが一瞬ですがやはりアクティブになります。 見た目も悪いので表示したくないし、ブック1と2で動作が違う理由がわかりません、 マクロ1はこれです。 ブック1のcreateというマクロを使うのが目的です。 Sub Output() Application.ScreenUpdating = False Call create MsgBox "完了しました。" ThisWorkbook.Close End Sub マクロ2 Sub Form_Open() Frm_Form1.Show vbModeless End Sub つまらない質問ですが気になるのでよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました。参考にさせていただきます。