' [074.xls] ' [Module1] のコード '★★☆ コマンドバーのメニューへ必要とする時のみ表示する ☆★★ Option Explicit Dim r_menu '右クリックしたときのメニュー名 Dim sub_m '右クリックしたときのサブメニュー名 Dim sub_m2 '右クリックしたときのサブメニュー名 Public 締め日 As String Public 支払日 As String Public 社名 As String Public 作業 As String Sub 締め支払() '選択セルを右クリックした時のメニューを作成 Set r_menu = CommandBars.Add(Name:="r_menu", Position:=msoBarPopup) Set sub_m = r_menu.Controls.Add sub_m.Caption = 社名 & " の締め日は" & 締め日 & "日" sub_m.OnAction = "no1" Set sub_m2 = r_menu.Controls.Add sub_m2.Caption = "お支払日は " & 支払日 & " です" sub_m2.OnAction = "no2" '作成されたメニューを実行 r_menu.ShowPopup '実行し終わると作成したメニューを削除しておく CommandBars("r_menu").Delete End Sub Sub no1() 'ここには実際の業務作業のマクロを作成する MsgBox 社名 & 作業 & "の関連作業をマクロでさせるため" & Chr(10) _ & "ここにマクロコードを書きます", 64, "マクロで楽しくお仕事" End Sub Sub no2() 'ここには実際の業務作業のマクロを作成する MsgBox 社名 & 作業 & "の関連作業をマクロでさせるため" & Chr(10) _ & "ここにマクロコードを書きます", 64, "マクロはとっても便利" End Sub ' [Sheet1] のコード Option Explicit Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean) Dim 行 As Integer '選択セルが列番号 3 か 4 の時 If ActiveCell.Column = 5 Or _ ActiveCell.Column = 6 Then 行 = ActiveCell.Row 作業 = Cells(7, ActiveCell.Column) '選択セルの列番号 1 にデータがあれば以下のプログラムを実行 If Cells(行, 4) <> "" Then '得意先台帳から選択されたセルアドレスを利用して '必要なデータを取り込む 社名 = Sheets("得意先台帳").Cells(行, 4) 締め日 = Format(Sheets("得意先台帳").Cells(行, 5)) 支払日 = Sheets("得意先台帳").Cells(行, 6) 'サブマクロの呼出 締め支払 '規定の右クリックメニューを出さない Cancel = True End If End If End Sub