
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も見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
思い出すきっかけは 音楽?におい?景色?
記憶をふと思い出すきっかけは 音楽、におい、景色 どれですか?
-
VBAのテキストボックスに文字列を貼り付ける方法
Access(アクセス)
-
リストビューをスクロールさせるには
Visual Basic(VBA)
-
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
-
-
4
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
5
フォームのテキストボックスの値をコピーしたい
Excel(エクセル)
-
6
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
7
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
8
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
9
メニューバーのイベントが2回実行される
Visual Basic(VBA)
-
10
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
11
VBAのリストボックスをマウスでスクロール
PowerPoint(パワーポイント)
-
12
CommandBars(Workbooks tabs").ShowPopup について"
Excel(エクセル)
-
13
vba Listviewでのチェックボックスのイベントを教えてください
Excel(エクセル)
-
14
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
15
ユーザーフォームのコピー?
Excel(エクセル)
-
16
EXCEL VBA コントロールのコピー&ペースト
Excel(エクセル)
-
17
Excel VBA ListViewサブアイテムの文字色
その他(プログラミング・Web制作)
-
18
TextBoxコントロールを引数として渡すには?
その他(教育・科学・学問)
-
19
テキストボックスのカーソル位置の取得・設定方法
Visual Basic(VBA)
-
20
VBAのリストボックスで、横スクロールバーを表示するには?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイル 別ファイルにリ...
-
bat 同名ファイルコピー時にリ...
-
[エクセル]コピーするとオブジ...
-
frxファイルの役目
-
アクセス クエリを別のファイ...
-
バッチファイルのコピーで
-
xcopyでのバッチコピー方法でコ...
-
Vba初心者です。下記のコード助...
-
ファイルサーバ上のファイルが...
-
エクセルVBAで開いているファイ...
-
同じファイル名 上書きしないフ...
-
エクセルのハイパーリンクがコ...
-
バッチファイル XCOPYで上書き...
-
エクセルのマクロについて教え...
-
バッチでサブフォルダ内のファ...
-
VBSでExcelシートのコピー
-
vbsでExcelのシートをコピーす...
-
パワポでスライドをコピーでき...
-
VB6で、Form1をコピーする方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
エクセルのハイパーリンクがコ...
-
バッチファイル XCOPYで上書き...
-
frxファイルの役目
-
[エクセル]コピーするとオブジ...
-
Vba初心者です。下記のコード助...
-
エクセル2010、図が大きすぎま...
-
アクセス クエリを別のファイ...
-
ファイルサーバ上のファイルが...
-
同じファイル名 上書きしないフ...
-
バッチファイル 別ファイルにリ...
-
bat 同名ファイルコピー時にリ...
-
xcopyでのバッチコピー方法でコ...
-
バッチファイルのコピーで
-
vbsでExcelのシートをコピーす...
-
現在のブックを閉じないで、マ...
-
DOSコマンドのコピー完了判定
-
ExeclVBAユーザーフォームから...
-
パワポでスライドをコピーでき...
-
FTPとファイルコピーの違いにつ...
おすすめ情報