![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
Userform1 に Textbox1 を配置し、以下のコードをそれぞれコメントにある
モジュールにコピペして下さい。
右クリックは「MouseUp」イベントで検知できます。
とりあえず、コピー&ペーストを簡単...と言うかかなり手抜きですが、
実装してみました。例外処理は最小限しかしてません。
' // Userform1 ------------------------------------------------------
Private Const MENUNAME As String = "RIGHT_CLICK_MENU"
Private mCB As CommandBar
Private Sub UserForm_Initialize()
Call CreatePopupMenu
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Call DeletePopupMenu
End Sub
' // 右クリックメニュー作成
Private Sub CreatePopupMenu()
Call DeletePopupMenu
Set mCB = Application.CommandBars _
.Add(Name:=MENUNAME, _
Position:=msoBarPopup, _
MenuBar:=False, _
Temporary:=True)
With mCB.Controls.Add(Type:=msoControlButton)
.Caption = "コピー(&C)"
.OnAction = "CopyText"
.FaceId = 19
End With
With mCB.Controls.Add(Type:=msoControlButton)
.Caption = "貼り付け(&V)"
.OnAction = "PasteText"
.FaceId = 22
End With
End Sub
' // 右クリックメニュー削除
Private Sub DeletePopupMenu()
On Error Resume Next
Application.CommandBars(MENUNAME).Delete
Set mCB = Nothing
On Error GoTo 0
End Sub
'// Textbox1 の右クリックで PopupMenu を呼び出し
Private Sub TextBox1_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
If Button = xlSecondaryButton Then
mCB.ShowPopup
End If
End Sub
' // 標準モジュール -------------------------------------------------
' // かなり手抜きです。この方法は必ずうまくいくとは限りません。
' // コピーコマンド
Sub CopyText()
On Error Resume Next
AppActivate (UserForm1.Caption)
If Err.Number = 0 Then SendKeys "^c", True
End Sub
'// ペーストコマンド
Sub PasteText()
On Error Resume Next
AppActivate (UserForm1.Caption)
If Err.Number = 0 Then SendKeys "^v", True
End Sub
No.2
- 回答日時:
こんにちは。
Excel VBAのUserFormのテキストボックスなどには、右クリックイベント自体はありますが、UserForm上の右クリックメニューは用意できないと思います。
No.1
- 回答日時:
ワークブックをオープンした時に右クリックのメニューをセット
閉じる時にメニューをクリアするサンプルです。
ThisWorkbookに貼り付けて使います。
Private Sub Workbook_Open()
Dim Newb As Variant
Set Newb = Application.CommandBars("Cell").Controls.Add(Temporary:=True, before:=1)
With Newb
.Caption = "転送ファイル作成"
.OnAction = "転送ファイル作成"
.BeginGroup = True
.FaceId = 283
End With
Set Newb = Application.CommandBars("Cell").Controls.Add(Temporary:=True, before:=1)
With Newb
.Caption = "月次更新"
.OnAction = "GetujiKosin"
.BeginGroup = True
.FaceId = 1015
End With
Set Newb = Application.CommandBars("Cell").Controls.Add(Temporary:=True, before:=1)
With Newb
.Caption = "個別明細書印刷"
.OnAction = "KOPRINT"
.BeginGroup = False
.FaceId = 4
End With
Set Newb = Application.CommandBars("Cell").Controls.Add(Temporary:=True, before:=1)
With Newb
.Caption = "総括明細書印刷"
.OnAction = "PPRINT"
.BeginGroup = True
.FaceId = 4
End With
Set Newb = Application.CommandBars("Cell").Controls.Add(Temporary:=True, before:=1)
With Newb
.Caption = "受信データー変換"
.OnAction = "Import"
.BeginGroup = True
.FaceId = 4
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Err.Clear
Do
Application.CommandBars("cell").Controls("総括明細書印刷").Delete
Loop While Err.Number = 0
Err.Clear
Do
Application.CommandBars("cell").Controls("個別明細書印刷").Delete
Loop While Err.Number = 0
Err.Clear
Do
Application.CommandBars("cell").Controls("月次更新").Delete
Loop While Err.Number = 0
Err.Clear
Do
Application.CommandBars("cell").Controls("転送ファイル作成").Delete
Loop While Err.Number = 0
Err.Clear
Do
Application.CommandBars("cell").Controls("受信データー変換").Delete
Loop While Err.Number = 0
End Sub
この回答への補足
回答ありがとう御座います。早速試してみました。Excelワークシート上で右クリックをするとショートカットメニューが出るのですが、
作成したユーザーフォーム上では出ませんでした。
Application.CommandBarsの引数が"Cell"になっているのは、ワークシート上だからと思い、引数を"UserForm"などに変えてみてもエラーなってしまい、うまくいきません。なにか有効なパラメータとか、そうでないものがあるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン PCでファイルを右ドラッグして出てくるメニューの編集方法を教えて下さい 2 2023/01/17 13:31
- その他(Microsoft Office) EXCEL2007 右クリックに「値を貼り付け」がない プライベートのパソコンを購入し(window 3 2022/04/13 23:10
- Excel(エクセル) Excelの表をメールで指定日時に送る方法を教えてほしい 2 2023/04/07 16:40
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Excel(エクセル) VBAで「クエリと接続」の画面を出せますか? 2 2022/10/24 13:35
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
- Windows 10 画面上の[タスクバー]の位置の変更 1 2022/06/12 21:10
- Excel(エクセル) コントロールにリンクするセルが選択されない 3 2022/06/12 14:37
- Windows 10 クリップボードからペイント? 2 2022/09/15 10:01
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
VBAのテキストボックスに文字列を貼り付ける方法
Access(アクセス)
-
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
-
4
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
5
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
6
Excel VBA ListViewサブアイテムの文字色
その他(プログラミング・Web制作)
-
7
ListViewで複数選択された項目を一度に削除する方法
Visual Basic(VBA)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
11
フォームのテキストボックスの値をコピーしたい
Excel(エクセル)
-
12
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
13
マウスの右クリックでコンテキストメニューを表示/非表示させたい。
Visual Basic(VBA)
-
14
Excel VBAでの右クリックのポップアップメニューの非表示方法は?
Visual Basic(VBA)
-
15
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
16
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
17
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
18
ListViewから選択中の文字列を取得
Visual Basic(VBA)
-
19
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
20
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのハイパーリンクがコ...
-
エクセルで複数のコメントのサ...
-
Vba初心者です。下記のコード助...
-
パワポでスライドをコピーでき...
-
ファイルサーバ上のファイルが...
-
バッチファイル XCOPYで上書き...
-
frxファイルの役目
-
[エクセル]コピーするとオブジ...
-
vbsでExcelのシートをコピーす...
-
Excelのマクロについて教えてく...
-
4時間
-
xcopyでのバッチコピー方法でコ...
-
読み取り専用でファイルを開きたい
-
共有フォルダへのフォルダ作成...
-
エクセルVBAで開いているファイ...
-
テキストファイルのコピー直後...
-
バッチファイル 別ファイルにリ...
-
FTPとファイルコピーの違いにつ...
-
バッチファイルのコピーで
-
VPN経由でExcelを開くのが遅い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイル XCOPYで上書き...
-
frxファイルの役目
-
エクセルVBAで開いているファイ...
-
エクセルのハイパーリンクがコ...
-
[エクセル]コピーするとオブジ...
-
バッチファイル 別ファイルにリ...
-
Vba初心者です。下記のコード助...
-
ファイルサーバ上のファイルが...
-
Gitについて質問。 クローンし...
-
エクセル2010、図が大きすぎま...
-
バッチファイルのコピーで
-
現在のブックを閉じないで、マ...
-
エクセルのマクロについて教え...
-
vbsでExcelのシートをコピーす...
-
同じファイル名 上書きしないフ...
-
アクセス クエリを別のファイ...
-
マインクラフトPCをプレイしよ...
-
xcopyでのバッチコピー方法でコ...
-
開いている別のファイルにExcel...
おすすめ情報