vba 调用系统复制剪切功能
2015-01-09 10:53
281 查看
''''启用复制、粘贴、删除等功能
注意:vb调用动态的dll,如果报错是没法用On Error GoTo line 的
Private ActiveTB As MSForms.TextBox
Public Sub CreateShortCutMenu()
Dim ShortCutMenu As CommandBar
Dim ShortCutMenuItem As CommandBarButton
Dim sCaption As Variant
Dim iFaceId As Variant
Dim sAction As Variant
Dim i As Integer
sCaption = Array("剪切(&C)", "复制(&T)", "贴粘(&P)", "删除(&D)")
iFaceId = Array(21, 19, 22, 1786)
sAction = Array("Action_Cut", "Action_Copy", "Action_Paste", "Action_Delete")
On Error Resume Next
'每次要销毁
For Each cb In Application.CommandBars
If cb.Name = "ShortCut" Then
Application.CommandBars("ShortCut").Delete
End If
Next
Set ShortCutMenu = Application.CommandBars.Add("ShortCut", msoBarPopup)
With ShortCutMenu
For i = 0 To 3
Set ShortCutMenuItem = .Controls.Add(msoControlButton)
With ShortCutMenuItem
.Caption = sCaption(i)
.FaceId = val(iFaceId(i))
.OnAction = sAction(i)
End With
Next
End With
End Sub
Public Sub ShowPopupMenu(txtCtr As MSForms.TextBox)
Dim Action As Variant
Set ActiveTB = txtCtr
With Application.CommandBars("ShortCut")
.Controls(1).Enabled = txtCtr.SelLength > 0
.Controls(2).Enabled = .Controls(1).Enabled
.Controls(3).Enabled = txtCtr.CanPaste
.Controls(4).Enabled = .Controls(1).Enabled
.ShowPopup
End With
End Sub
Public Sub Action_Cut()
ActiveTB.Cut
End Sub
Public Sub Action_Copy()
ActiveTB.Copy
End Sub
Public Sub Action_Paste()
ActiveTB.Paste
End Sub
Public Sub Action_Delete()
Dim s As String
With ActiveTB
s = .SelText
.value = Replace(.value, s, "")
End With
End Sub
Public Sub DeleteShortCutMenu()
On Error GoTo toexit
Application.CommandBars("ShortCut").Delete
toexit: Exit Sub
End Sub
注意:vb调用动态的dll,如果报错是没法用On Error GoTo line 的
Private ActiveTB As MSForms.TextBox
Public Sub CreateShortCutMenu()
Dim ShortCutMenu As CommandBar
Dim ShortCutMenuItem As CommandBarButton
Dim sCaption As Variant
Dim iFaceId As Variant
Dim sAction As Variant
Dim i As Integer
sCaption = Array("剪切(&C)", "复制(&T)", "贴粘(&P)", "删除(&D)")
iFaceId = Array(21, 19, 22, 1786)
sAction = Array("Action_Cut", "Action_Copy", "Action_Paste", "Action_Delete")
On Error Resume Next
'每次要销毁
For Each cb In Application.CommandBars
If cb.Name = "ShortCut" Then
Application.CommandBars("ShortCut").Delete
End If
Next
Set ShortCutMenu = Application.CommandBars.Add("ShortCut", msoBarPopup)
With ShortCutMenu
For i = 0 To 3
Set ShortCutMenuItem = .Controls.Add(msoControlButton)
With ShortCutMenuItem
.Caption = sCaption(i)
.FaceId = val(iFaceId(i))
.OnAction = sAction(i)
End With
Next
End With
End Sub
Public Sub ShowPopupMenu(txtCtr As MSForms.TextBox)
Dim Action As Variant
Set ActiveTB = txtCtr
With Application.CommandBars("ShortCut")
.Controls(1).Enabled = txtCtr.SelLength > 0
.Controls(2).Enabled = .Controls(1).Enabled
.Controls(3).Enabled = txtCtr.CanPaste
.Controls(4).Enabled = .Controls(1).Enabled
.ShowPopup
End With
End Sub
Public Sub Action_Cut()
ActiveTB.Cut
End Sub
Public Sub Action_Copy()
ActiveTB.Copy
End Sub
Public Sub Action_Paste()
ActiveTB.Paste
End Sub
Public Sub Action_Delete()
Dim s As String
With ActiveTB
s = .SelText
.value = Replace(.value, s, "")
End With
End Sub
Public Sub DeleteShortCutMenu()
On Error GoTo toexit
Application.CommandBars("ShortCut").Delete
toexit: Exit Sub
End Sub
相关文章推荐
- Winform调用系统的剪切,复制,粘贴文件功能
- Winform调用系统的剪切,复制,粘贴文件功能
- Winform调用系统的剪切,复制,粘贴文件功能
- Winform调用系统的剪切,复制,粘贴文件功能
- Android-调用系统粘贴板copy复制文本功能及复制文本到粘贴板
- WebView长按后调用系统自带功能复制文字
- iOS使用UIMenuController调用系统自带的复制、粘贴、剪切
- C#如何调用Windows系统自身的文件复制功能,显示文件进度,显示重名提示
- android 调用系统相机、相册剪切功能
- WebView长按后调用系统自带功能复制文字
- DOS系统功能调用与BIOS中断调用
- C#调用系统的复制、移动、删除文件对话框
- richedit中加右键菜单:复制、粘贴、剪切等基本功能,代码如何写?
- 2010-07-21 使用系统调用实现文件复制
- DOS系统功能调用与BIOS中断调用
- 剪贴板——C# 复制、粘贴、撤销、剪切功能实现。
- Java右键菜单实现文本组件内容的的复制、粘贴、剪切功能
- 在VB或VBA中,如何调用API复制文本到剪贴板
- 常用的JS屏蔽功能(右键、查看源文件、复制、剪切、粘贴、后退、F1、F5、Ctrl+N、Shift+F10、Alt+F4)
- linux下使用系统调用编程实现dir命令功能