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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
VBAのテキストボックスに文字列を貼り付ける方法
Access(アクセス)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
UserForm1.Showでエラーになります。
工学
-
-
4
リストビューをスクロールさせるには
Visual Basic(VBA)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
7
フォームでPDFを表示させたいときは
Visual Basic(VBA)
-
8
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
9
マウスの右クリックでコンテキストメニューを表示/非表示させたい。
Visual Basic(VBA)
-
10
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
実行時エラー'1004': WorkSheetクラスのVisibleプロパティを設定できません
Visual Basic(VBA)
-
13
EXCELのVBAで作業ファイルを閉じてもメモリの解放をしなくて困っています
Excel(エクセル)
-
14
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
15
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
-
16
ユーザーフォーム上に表示されているテキストブックのテキストを右クリックでコピー&ペーストする方法
Excel(エクセル)
-
17
Excel VBA ListViewサブアイテムの文字色
その他(プログラミング・Web制作)
-
18
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
19
メニューバーのイベントが2回実行される
Visual Basic(VBA)
-
20
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マインクラフトPCをプレイしよ...
-
アクセス クエリを別のファイ...
-
VBスクリプトで外字の使用を無...
-
ExeclVBAユーザーフォームから...
-
VBAでXCOPYの実行結果を取得したい
-
プログレスバーについて
-
PDFファイルを枚数指定してコピー
-
DOSコマンドのコピー完了判定
-
バッチファイル 別ファイルにリ...
-
開いている別のファイルにExcel...
-
ファイルサーバ上のファイルが...
-
frxファイルの役目
-
バッチファイルのコピーで
-
PowerShellでGUI付のコピープロ...
-
FTPとファイルコピーの違いにつ...
-
エクセルで複数のコメントのサ...
-
バッチファイル XCOPYで上書き...
-
batでのスタートアップです
-
SDカードのコピーと再生の仕方...
-
パワポでスライドをコピーでき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
frxファイルの役目
-
バッチファイル XCOPYで上書き...
-
[エクセル]コピーするとオブジ...
-
エクセルのハイパーリンクがコ...
-
Vba初心者です。下記のコード助...
-
xcopyでのバッチコピー方法でコ...
-
同じファイル名 上書きしないフ...
-
エクセル2010、図が大きすぎま...
-
ファイルサーバ上のファイルが...
-
アクセス クエリを別のファイ...
-
バッチファイル 別ファイルにリ...
-
FTPとファイルコピーの違いにつ...
-
バッチファイルのコピーで
-
特定のエクセルファイルが止ま...
-
vbsでExcelのシートをコピーす...
-
bat 同名ファイルコピー時にリ...
-
パワポでスライドをコピーでき...
-
vbsでファイルやフォルダのコピ...
-
マインクラフトPCをプレイしよ...
おすすめ情報