• 締切済み

めっちゃ困ってます

ソフトを使おうとしたのですがいきなりつまづきました。11行目の◎◎のところがまちがってる?という事らしいのですが、どなたかどうしたらなおるか教えていただけないでしょうか。 Sub MortalityMenu() DeleteMort Dim MortMenu As CommandBarControl Dim MainMenu As CommandBar Dim SecondMenu As CommandBarControl Dim HelpIndex As Integer Dim NewButton As CommandBarControl Dim IconSheet As Worksheet 'Set IconSheet = Worksheets("Sheet5") Set MainMenu = Application.CommandBars("Worksheet Menu Bar") ◎HelpIndex = MainMenu.Controls("Help").Index◎ Set MortMenu = MainMenu.Controls.Add(Type:=msoControlPopup, _ Before:=HelpIndex) MortMenu.Caption = "&Mortality" Set SecondMenu = MortMenu.Controls.Add(Type:=msoControlPopup) SecondMenu.Caption = "&P-spline" Set NewButton = SecondMenu.Controls.Add(Type:=msoControlButton) With NewButton .Caption = "Fit Model" .Style = msoButtonIconAndCaption .OnAction = "Graduation.RunPS" End With Set NewButton = SecondMenu.Controls.Add(Type:=msoControlButton) With NewButton .Caption = "Generate Scenario" .Style = msoButtonIconAndCaption .OnAction = "Graduation.AddScenPS" End With Set SecondMenu = MortMenu.Controls.Add(Type:=msoControlPopup) SecondMenu.Caption = "&Lee-Carter" Set NewButton = SecondMenu.Controls.Add(Type:=msoControlButton) With NewButton .Caption = "Fit Model" .Style = msoButtonIconAndCaption .OnAction = "Graduation.RunLC" End With Set NewButton = SecondMenu.Controls.Add(Type:=msoControlButton) With NewButton .Caption = "Generate Scenario" .Style = msoButtonIconAndCaption .OnAction = "Graduation.RunLCProjection" End With ' Set SecondMenu = MortMenu.Controls.Add(Type:=msoControlButton) ' SecondMenu.Caption = "&Add Mortality Data" ' SecondMenu.OnAction = "AddData.AddMortalitySheets" Set SecondMenu = MortMenu.Controls.Add(Type:=msoControlButton) SecondMenu.Caption = "&About CMI Software" SecondMenu.OnAction = "Graduation.ShowAbout" End Sub Sub DeleteMort() On Error Resume Next CommandBars(1).Controls("Mortality").Delete End Sub

みんなの回答

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

HelpIndex = MainMenu.Controls("ヘルプ(H)").Index でどうでしょうか。 EXCEL2003の日本語版を使用

harujion96
質問者

お礼

解答ありがとうございます! 早速ためしてみたらOKでした! ほんとうにありがとうございました☆

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル2007で自前のツールバーを作る方法

    エクセル2000です。 以下のマクロで自前の新しいツールバーが作れ、作動します。 ところがエクセル2007ではうんともすんとも言ってくれません。 エクセル2007で使う場合はどのようにしたらよいでしょうか? ユーザーフォームで似たようなものを作る方法はわかるのですが、できれば以下の方法を使いたいのです。 Sub 三択メニュー() On Error Resume Next Application.CommandBars("選択します").Delete On Error GoTo 0 Application.CommandBars.Add Name:="選択します", Position:=msoBarFloating With Application.CommandBars("選択します") .Visible = True .Controls.Add Type:=msoControlButton With .Controls(1) .Style = msoButtonCaption .Caption = "⇒メニュー1 " .OnAction = "Msg_1" End With .Controls.Add Type:=msoControlButton With .Controls(2) .Style = msoButtonCaption .Caption = "⇒メニュー2 " .OnAction = "Msg_2" End With .Controls.Add Type:=msoControlButton With .Controls(3) .Style = msoButtonCaption .Caption = "⇒メニュー3 " .OnAction = "Msg_3" End With End With End Sub Sub Msg_1() Application.CommandBars("選択します").Delete MsgBox "追加コマンド1を処理しました。" End Sub Sub Msg_2() Application.CommandBars("選択します").Delete MsgBox "追加コマンド2を処理しました。" End Sub Sub Msg_3() Application.CommandBars("選択します").Delete MsgBox "追加コマンド3を処理しました。" End Sub

  • Excel:メニューから関数に飛ぶ際に引数を持たせる

    Excel2003でマクロを組んでいます。 ThisWorkbookにて、  With Menu1   .Controls.add Type:=msoControlButton   With .Controls(1)    .Caption = "手順1"    .OnAction = "Jikkou"   End With  End With のように記述し、Menu1というオリジナルのメニューの中に、 「手順1」というメニューを表示させ、これを実行すると関数"Jikkou"が動くようにしました。 このJikkouという関数に、引数を持って行きたいのですが、 どのように記述すればよいでしょうか。 具体的には、異なるメニューを実行して同じ関数へ移動する際、 「どのメニューを選択してきたのか」によって、Jikkouの中で処理を分岐させたいのです。 引数を持たせられたら解決しそうだと思って質問しています。 他に何か方法があれば(例えば、それよりこちらの方が自然だ、のような方法があれば)教えていただきたいです。 以下、引数の持たせ方がわからず詰まった、自分の考えたコードです(勿論動きません)。 目的が伝われば幸いです。 ---▼ThisWorkbookの一部---------------------------  With Menu1   .Controls.add Type:=msoControlButton   With .Controls(1)    .Caption = "手順1"    a = 0    .OnAction = "Jikkou a"   End With  End With  With Menu1   .Controls.add Type:=msoControlButton   With .Controls(2)    .Caption = "手順2"    a = 1    .OnAction = "Jikkou a"   End With  End With ---▼関数Jikkou------------------------------------ Sub Jikkou(byVal a as integer)  if a = 0 then   msgbox "手順1から来た"  elseif a = 1 then   msgbox "手順2から来た"  end if End Sub

  • Excel2003右クリックについて

    Excel2000でVBAを使って右クリックのメニューに項目を追加するマクロを作成したのですが、 Excel2003では右クリックでメニューが出てきません。なぜでしょうか?? Private Sub Workbook_Open() Dim cbMenuBar As CommandBar Dim cbGomaPop As CommandBarPopup Dim oGomaControl As CommandBarControl Dim cbGomaMenuItem As CommandBarButton Dim n As Integer Dim fExistGomaContextMenu As Boolean On Error Resume Next ' Add Goma Menu to Context Menu Set cbMenuBar = Application.CommandBars("Cell") ' Avoid Excel2003(beta) Error on Add Context Menu If Int(Application.Version) < 11 Then 'Check Goma Context Menu (Dic) Exist fExistGomaContextMenu = False For n = cbMenuBar.Controls.Count To 1 Step -1 If cbMenuBar.Controls(n).Caption = MITEM_DIC_CAPTION2 Then fExistGomaContextMenu = True Exit For End If Next n If fExistGomaContextMenu = False Then Set cbGomaMenuItem = cbMenuBar.Controls.Add(Temporary:=True) With cbGomaMenuItem .BeginGroup = True .Caption = MITEM_TRAN_CAPTION2 .OnAction = MITEM_TRAN_ACTION End With Set cbGomaMenuItem = cbMenuBar.Controls.Add(Temporary:=True) With cbGomaMenuItem .Caption = MITEM_OPT_CAPTION2 .OnAction = MITEM_OPT_ACTION End With Set cbGomaMenuItem = cbMenuBar.Controls.Add(Temporary:=True) With cbGomaMenuItem .Caption = MITEM_DIC_CAPTION2 .OnAction = MITEM_DIC_ACTION End With Set cbGomaMenuItem = cbMenuBar.Controls.Add(Temporary:=True) With cbGomaMenuItem .Caption = MITEM_DIC_CAPTION3 .OnAction = MITEM_DIC_ACTION2 End With End If End If End Sub おわかりになる方がいらっしゃいましたら教えて下さい。

  • メニュー登録のマクロの書き方

    エクセルを開いた時のツールバーで、 「ファイル」を選択すると「新規作成」などのメニューが出ますよね。 その中に「印刷範囲」というメニューがあり、 これにカーソルを合わせると更に右に「印刷範囲の設定」「印刷範囲のクリア」というメニューが出てきます。 この、2階層持つメニューをマクロで作成したいのですが、可能でしょうか。 1階層だけであれば、 Set menu1 = Application.CommandBars("worksheet menu bar"). _ Controls.Add(Type:=msoControlPopup, Temporary:=True) menu1.Caption = "ツールバーに表示させるメニュー名" .Controls.Add Type:=msoControlButton With .Controls(1) .Caption = "メニュー1" .OnAction = "メニュー1のマクロの名前?" End With という記述で実現できました。

  • エクセル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 ~~~~~~~~~~~~~~~~~~~~~~~ 尚、マクロは簡略化し、のせております。 よろしく御願い致します。

  • Excel-VBA ショートカットメニュー追加

    Excel-VBA ショートカットメニュー追加 マウス右クリックでのショートカットメニュー「テストA、テストB、テストC」を最上段に追加(挿入)したい、 CommandBarControls.Add メソッド 構文:式.Add(Type, Id, Parameter, Before, Temporary) これのBeforeを定義すれば良さそうに思えるのですが、成功しません!? 正しい記述事例を教えて下さい。 参考(現状):下記は最後(末尾)にメニューが追加されてしまう状態です。 Public Sub ShortCutMenuAdd() Dim newMenu As CommandBarControls Set newMenu = Application.CommandBars("Cell").Controls newMenu.Add Type:=msoControlButton, Temporary:=True newMenu(newMenu.Count).Caption = "テストA" newMenu(newMenu.Count).OnAction = "mymsgA" newMenu(newMenu.Count).BeginGroup = True newMenu.Add Type:=msoControlButton, Temporary:=True newMenu(newMenu.Count).Caption = "テストB" newMenu(newMenu.Count).OnAction = "mymsgB" newMenu.Add Type:=msoControlButton, Temporary:=True newMenu(newMenu.Count).Caption = "テストC" newMenu(newMenu.Count).OnAction = "mymsgC" Set newMenu = Nothing End Sub

  • メニューバーのイベントが2回実行される

    CommandBarControlでメニューバーを作成し、イベントを実行していますが、何故か2回実行されてしまいます。 具体的には、  Set myMenu = Application.CommandBars("Worksheet Menu Bar"). _ Controls.Add(Type:=msoControlPopup, before:=11) With myMenu .Caption = "User's MenuBar(xx)" With .Controls.Add .Caption = "フォームを開く" .OnAction = "OpenForm(2)" End With 上記で「フォームを開く」メニューバーを作成して、これを選択すると、UserForm1.Show というロジックが書かれているSubプロシジャーが実行されます。 これにより、フォームが開くのですが、どうもこのプロシジャーが2回実行されており、フォームが2つ開いているのです。 しかし、原因がわかりません。 対策としては、 1.2回実行される原因を調べる。 2.UserForm1が既に開いていたら開かないようにロジックを変更す   る。 1は皆無ですし、2はUserForm1が既に開いているかをチェックするロジックが分かりません。 どなたか教えて下さい。 よろしくお願いします m(_ _)m

  • 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 VBA でマクロが作動するシートとしないシートがある。

    右クリックのショートカットメニューに作成したマクロを追加しました。その追加マクロを実行しても右クリックのショートカットに追加されないシートがあります。同じbookでもその他のシートでは、右クリックのショートカットメニューに追加されているものもあります。 なぜでしょうか? できないのは、右クリックのショートカットの表示です。目的の動作(下記の場合は、フォントの色を変える)は、どのシートでも作動します。 ちなみにプロシージャーは次のように書いています。PERSONAL.XLSに登録してあります。 宜しくお願いします。 'セルの右クリックショートカットメニューを作成 Sub 色々右クリック() 赤みぎクリック 黒みぎクリック 青みぎクリック End Sub Sub 赤みぎクリック() Dim Newb Set Newb = Application.CommandBars("Cell").Controls.Add() With Newb .Caption = "赤" .OnAction = "赤フォント" .BeginGroup = False End With End Sub Sub 赤フォント() Selection.Font.ColorIndex = 3 End Sub Sub 黒みぎクリック() Dim Newb Set Newb = Application.CommandBars("Cell").Controls.Add() With Newb .Caption = "黒" .OnAction = "黒フォント" .BeginGroup = False End With End Sub Sub 黒フォント() Selection.Font.ColorIndex = 1 End Sub Sub 青みぎクリック() Dim Newb Set Newb = Application.CommandBars("Cell").Controls.Add() With Newb .Caption = "青" .OnAction = "青フォント" .BeginGroup = False End With End Sub Sub 青フォント() Selection.Font.ColorIndex = 5 End Sub Sub Reset_RightClick() Dim rightBar As CommandBar Application.CommandBars("cell").Reset End Sub

  • ツールバー表示

    ExcelVBAで左端にツールバー表示をしたく、調べて表示する所までは出来ました。 ですが文字が縦向きになっております。 私は、横向きの文字にしたいのですが、方法はあるのでしょうか? 環境はWindowsXP、Excel2003です。 以下、その部分の関係ありそうなソース(一部)。 Private Sub Workbook_Open() Dim objBar As CommandBar Dim objCont As CommandBarControl Dim objBtn As CommandBarButton Set objBar = xlAPP.CommandBars.Add(Name:=g_cnsTITLE, Position:=msoBarLeft) Set objCont = objBar.Controls.Add(Type:=msoControlButton) Set objBtn = objCont objBtn.Caption = "ボタン1"