|
Jaka さん、お返事が遅くなって申し訳御座いませんでした。
凄いです、ユーザーフォームを使わずに
出来るんですね。
有難う御座いました。
ただ、教えていただいた方法を私が理解できずに
うまく動かせなくて悪戦苦闘していましたのでごめんなさい。
もう一つ質問なんですが、教えていただいたものを繰り返し
行なうにはどうしたらいいのでしょうか?
>なんか見てないみたいだけど、まあ良いや。
>
>今までできないと思って、やったこと事がなかったのですが、
>夜中にやってみたらできたので、中途半端なコードを載せます。
>右クリックで起動します。
>
>事前に用意して置いてください。
>
>名簿シートをSheet2とします。
>あ行の名簿を A1:A5
>か行の名簿を B1:B5
>さ行の名簿を C1:C5
>た行の名簿を D1:D5
>とします。
>
>標準モジュールは前回と同じ。
>
>シートモジュールだけ変更。
>
>Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
>Dim Cel As Range
>'If Target.Column > 1 Then Exit Sub
>Cancel = True
>With Application.CommandBars.Add(Position:=msoBarPopup, temporary:=True)
> With .Controls.Add(Type:=msoControlPopup)
> .Caption = "あ行"
> For Each Cel In Sheets("Sheet2").Range("A1:A5") '営業担当者の入ったセル範囲、あ行
> With .Controls.Add(Type:=msoControlButton)
> .Caption = Cel.Value
> .FaceId = 80
> .OnAction = "マクロ1"
> End With
> Next
> End With
> With .Controls.Add(Type:=msoControlPopup)
> .Caption = "か行"
> For Each Cel In Sheets("Sheet2").Range("B1:B5") '営業担当者の入ったセル範囲、か行
> With .Controls.Add(Type:=msoControlButton)
> .Caption = Cel.Value
> .FaceId = 90
> .OnAction = "マクロ1"
> End With
> Next
> End With
> With .Controls.Add(Type:=msoControlPopup)
> .Caption = "さ行"
> For Each Cel In Sheets("Sheet2").Range("C1:C5") '営業担当者の入ったセル範囲、さ行
> With .Controls.Add(Type:=msoControlButton)
> .Caption = Cel.Value
> .FaceId = 98
> .OnAction = "マクロ1"
> End With
> Next
> End With
> With .Controls.Add(Type:=msoControlPopup)
> .Caption = "た行"
> For Each Cel In Sheets("Sheet2").Range("D1:D5") '営業担当者の入ったセル範囲、た行
> With .Controls.Add(Type:=msoControlButton)
> .Caption = Cel.Value
> .FaceId = 99
> .OnAction = "マクロ1"
> End With
> Next
> End With
> .ShowPopup
>End With
>End Sub
>
>追伸
>前回、遅いと思っていたのは遅いPCのせいだったみたいです。
>Pen4 1.6Gでやってみたら、ストレスなくあっさり表示されました。
|
|