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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAのテキストボックスに文字列を貼り付ける方法
Access(アクセス)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
-
4
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
5
Excel VBA ListViewサブアイテムの文字色
その他(プログラミング・Web制作)
-
6
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
7
VBAでListviewの並べ替えを数値で行なうには
Excel(エクセル)
-
8
ListViewで複数選択された項目を一度に削除する方法
Visual Basic(VBA)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
11
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
12
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
13
VBAのリストボックスをマウスでスクロール
PowerPoint(パワーポイント)
-
14
vba Listviewでのチェックボックスのイベントを教えてください
Excel(エクセル)
-
15
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
16
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
17
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
18
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
19
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
20
ExcelVBA EnableプロパティがFalseの時に文字の色を変えたくない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
現在のブックを閉じないで、マ...
-
Gitについて質問。 クローンし...
-
マインクラフトPCをプレイしよ...
-
ファイルサーバ上のファイルが...
-
エクセル 同じデータなのに違う...
-
LAN接続HDD(LinkStation)で削...
-
Excel VBAで値コピーが使用でき...
-
VBAで別エクセルファイルから指...
-
内蔵HDD同士の転送速度について。
-
バッチでサブフォルダ内のファ...
-
VBScript フォルダ以下からフ...
-
vb2008 フォームのコピー方法を...
-
ファイルをコピーできない
-
エクセルVBAでファイル・シート...
-
エクセル ファイルをコピー出...
-
エクセルVBAで開いているファイ...
-
PDFファイルをWORDに
-
ホームページ内の文字や写真を...
-
既存のExcelファイルをコピーし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
エクセルのハイパーリンクがコ...
-
バッチファイル XCOPYで上書き...
-
バッチファイル 別ファイルにリ...
-
frxファイルの役目
-
ファイルサーバ上のファイルが...
-
バッチファイルのコピーで
-
Vba初心者です。下記のコード助...
-
xcopyでのバッチコピー方法でコ...
-
同じファイル名 上書きしないフ...
-
エクセルVBAで開いているファイ...
-
エクセル2010、図が大きすぎま...
-
vbsでExcelのシートをコピーす...
-
アクセス クエリを別のファイ...
-
bat 同名ファイルコピー時にリ...
-
[エクセル]コピーするとオブジ...
-
ワード 一部のページだけをpdf...
-
パワポでスライドをコピーでき...
-
FSO.CopyFileでのエラー無視方法
-
VBSで作成したフォルダにファイ...
おすすめ情報