• ベストアンサー

Excel VBAについて教えて下さい

Excel(2000) VBAでアドインソフトを組んでいます。 本体はほとんど出来上がりあとはメニューだけになっているのですが少々見栄えを気にしています。 メニューバーに独自のメニューを追加しているのですが、このメニューのグループ分け(項目の間に線を入れる)をコードから記述できないでしょうか? それともう一点はその項目の前にアイコンも出来れば表示がしたいのです。 「ユーザー設定」で設定してもワンショットで次回起動時には元に戻っています。 よいアドバイスを宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

下記で下記の例で修正1と修正2の間に横線が引かれます。 Sub test03() Set Menu1 = Application.CommandBars("Worksheet Menu Bar"). _ Controls.Add(Type:=msoControlPopup) Menu1.Caption = "修正" Set Submenu1 = Menu1.Controls.Add Submenu1.Caption = "修正1" Set Submenu2 = Menu1.Controls.Add Submenu2.Caption = "修正2" Submenu2.BeginGroup = True End Sub Sub test04() Application.CommandBars("Worksheet Menu Bar").Reset End Sub >「ユーザー設定」で設定してもワンショットで次回起動時には元に戻っています。 Controls.Add(Type:=msoControlPopup,Temporary:=False)のFalse が左右するのでは。 >項目の前にアイコンも出来れば表示がしたいのです。 Type:=msoControlPopupではその考えが採り入れられて いないのでは。

hamayu
質問者

お礼

思い通りのメニューが出来ました。 適切なアドバイスありがとうございました。

関連するQ&A

  • エクセルのメニューについて

    エクセルのメニューやVBA、アドインなどの基本的な理解が 出来ていませんが、是非宜しくお願いします。 Ver_2000にて前担当者が作った「列の選択」「その他」などの 特殊なメニューがあったのですが、ある日突然消えてしまいました。 これを復活させたく思っておりますが、メニューのいじり方が良く 分かりません。 「列の選択」「その他」などのメニューの中は多数のサブメニュー になっていて、マクロ用のファイルを立ち上げているようです。 VBAによる作業をスタートさせるアイコンも同時に消えていましたが こちらはアドインのファイル「マクロ.xla」があったので、アドイン 再設定と「ユーザ設定」メニューで復活しました。 実は別のクライアントにあるエクセルは以前と同様のメニューが表示 されていて正常に稼動します。このエクセルを参考に消えたアイコン は復活できました。メニュー設定とアドインの関係が分からないので すが、記述を見るとメニューには関係ないようです。 そもそもメニュー設定管理はアドインで行うのかすら分っていません。 こちらの正しいエクセルのメニュー設定を、メニューが消えてしまった 私のPCのエクセルにコピーすることが出来れば元に戻るのですが、 そんな事はできるのでしょうか? 新規作成メニューに処理を登録させる方法すらわからないのですが、 1メニュー中の処理用サブメニューの数が多いので、出来れば消えた メニューを復活させたいと思っています。どこかに設定が残っている としたら、どこを見れば分かり、どうしたら表示の復帰ができるので しょうか? ホントに素人で申し訳ありませんが、どうぞ宜しくお願いします。

  • VBAを使用してエクセルのメニューを消去したい

    VBAを使用してエクセルメニューバーのうち、ファイル(F)、編集(E)以外の他のメニューを全て消去又は使用できなくしたいのですが、こんなことできるのでしょうか。 もし、できるのでしたら記述の方法を教えていただきたいのですが。 よろしくお願いします。

  • Excel2000VBAでメニューバーを追加したい

     初心者ですので用語が間違っているかもしれませんがご容赦ください。  Excelワークシートのメニューバー(「ファイル」とか「編集」など)に新たな項目を追加して(さらにその下にサブのメニューも追加できるとなお良い)、そこにマクロを登録したいのですが、Excel2000VBAではどのように記述すればよいのでしょうか。  よろしくお願いします。

  • EXCEL vba でマクロにパスワードを設定できますか

    メニューバー「ツール」→VBAProjectのプロパティを選択して パスワードの設定、解除をするのではなく、 この処理を割り当てたコマンドボタンなどで設定、 解除をさせたいのですが、可能でしょうか ネットで調べてみましたが、 メニューバー「ツール」→VBAProjectのプロパティで 設定する方法しかみつけられませんでしたので もし可能でしたら、どのように記述すればいいのか お教えいただけないでしょうか よろしくお願いします

  • エクセル2000 うっかり追加してしまったユーロのアイコンを消したい

    おそらく「アドイン」だと思うのですが、こちらを選択した時に、メニューバーにユーロ関係のアイコンが表示されるようになりました。 普段は使わないので、非表示にしたいのですが、ボタンの表示/非表示をチョイスするメニューの該当部分が灰色になっていて、選択できません。 ユーロのアイコンを非表示にするには、どうしたらいいでしょうか。

  • EXCEL VBAで「ファイル」→「開く」のプロシージャについて

    EXCELでVBA初心者です。本を買って練習しているのですが、基本的なところでつまずいています。本ではファイルを開くの際に、特定のファイル名を指定させて開かせているのですが、これは良いとして、少し応用をと思い、通常エクセル画面でメニューバーの「ファイル」→「開く」の記述を調べたところ、具体的な例が出てきません。色々試して見ましたがエラーになります。こういう事は普通しないのかも知れませんが誰かわかる方がいればと思い聞いてみました。

  • エクセルVBA アドイン メニューの作成方法

    OS:windowsXP HomeEdition ソフト:Excel2003 アドインを作成し配布したいのですが、xla形式で保存しエクセル上でアドインさせ、 作成したメニューからテスト起動させてみると、アドインの元のファイル(拡張子xls)が 展開してしまいます。展開させずにアドインプロシージャを起動させたいのですが 何が原因か調べてもわかりませんでした。知っている方、ご助言御願い致します。 以下に、私の作成したマクロを記述します。 マクロ解説HPで勉強しつつ作成致しました。 ~~~~~~~~~~~~~~~~~~~~~~~~~ <ThisWorkBookへの記述> Dim mySubMenu As CommandBarControl Sub MakeSubMenu() Dim myMenu As CommandBar Dim cmdSubMenu As CommandBarControl 'すでにサブメニューがあれば削除する DelSubMenu Set myMenu = Application.CommandBars("worksheet Menu Bar") Set mySubMenu = myMenu.Controls.Add(Type:=msoControlPopup) mySubMenu.Caption = "メニュー" Set cmdSubMenu = myMenu.Controls("メニュー").Controls.Add(Type:=msoControlButton) cmdSubMenu.Caption = "コマンド1" 'サブメニューでコマンド1を選択したとき cmd1() を呼び出す cmdSubMenu.OnAction = "cmd1" Set cmdSubMenu = myMenu.Controls("メニュー").Controls.Add(Type:=msoControlButton) cmdSubMenu.Caption = "コマンド2" 'サブメニューでコマンド2を選択したとき cmd2() を呼び出す cmdSubMenu.OnAction = "cmd2" End Sub Sub DelSubMenu() 'メニューバーのサブメニューを削除する On Error Resume Next mySubMenu.Delete End Sub <標準モジュールへの記述> Private Sub cmd1() MsgBox "コマンド1を選択しました" End Sub Private Sub cmd2() MsgBox "コマンド2を選択しました" End Sub ~~~~~~~~~~~~~~~~~~~~~~~ 尚、マクロは簡略化し、のせております。 よろしく御願い致します。

  • エクセルのメニューバーからゴールシークが消えてしまった。

    はじまして。 オフィス2000,エクセル2000を使用しています。 エクセルでアイコンの新規作成をしようとしました。(ゴールシークというものですが) ユーザー設定を使いメニューバーから直接ドラッグアンドドロップしたらうまくいかず、おまけにメニューバーからもゴールシークの項目が消えてしまいました。どこを探してもゴールシークが見つかりません。 再びゴールシークを使うようにするにはどうしたらよいのでしょうか。

  • エクセルVBA メニューバーにメニューを追加する

    エクセルVBAにて、ブックを開くと自動メニューバーにメニューを追加するというコードを作成しています。 メニューの追加そのものは問題なく出来たのですが、例えば追加された状態で上書き保存し、再度開くと、1つ追加された状態でもう1つメニューが追加されてしまうという状況となってしまいました。 IF文で重複の判定ができると良いのですが、コードが分からなくて困っております。どなたかご教授下さい。 そしてもう1つ、メニューバーに追加した新しいメニューについて、手動でリセットする方法はありますでしょうか。表示→メニューバー→ユーザ設定でリセットしてもユーザ設定だけは保持されるようで... こちらもお願いします。 コードはそのまま貼り付けるとNGワードに引っかかるので(何故かは分かりません)、申し訳ありませんがプリントスクリーンしたものを画像として添付致します(こちらも回避する方法があれば良いのですが...OKWaveは使いづらいです)。

  • Excel VBA メニューバー内の各項目の enable/disable変更

    Excel VBA を用いて Excelのメニューバーの各項目の enable/disable 状態を変更する事は可能でしょうか? (「編集」-「貼り付け」の許可/禁止の切り替えなど) ご存知の方、教えてください。お願いします。

専門家に質問してみよう