SOLIDWORKS VBA 自学笔记018、复制字符串到剪贴板(代码示例)
复制字符串到剪贴板_目录
- 一、环境
- 二、功能、调用流程
- 三、代码如下(实现:拷贝字符串到粘贴板)
-
- 1、模块(标准模块) ➡ ➡ mian函数所在的模块。
- 2、类模块(功能模块)
- 四、利用到两个模块
- 五、忘记上面,重新开始
- 六、两种方式的对比
一、环境
solidworks vba
二、功能、调用流程
- 调用流程:在主模块(ClipboardHandler)中实例化类模块(CopyToClipboardModule),调用类模块中的功能。
- 基本功能:在类模块中写一个,处理字符串复制到剪贴板,空字符串时仅提醒仍执行复制。为了其他代码调用方便。(这个功能主要是为了其他程序段做服务的,这样做可以方便其它功能代码的调用,避免代码冗余。如果单独把下面的代码写在solidworks的.swp中,则没有意义!)
- Solidworks VBE环境操作(使用,主模块+类模块,这两个模块来实现)
- 1、一个类模块,命名为:
ClipboardHandler
- 2、一个模块(标准模块,含有main函数的模块),命名为:
CopyToClipboardModule
- 3、记得保存。
- 1、一个类模块,命名为:
三、代码如下(实现:拷贝字符串到粘贴板)
1、模块(标准模块) ➡ ➡ mian函数所在的模块。
Option ExplicitDim swApp As Object
Sub main()Set swApp = Application.SldWorksCall CopyToClipboard ' 调用本模块的过程Set swApp = Nothing ' 释放对象
End Sub' 标准模块:CopyToClipboardModule(这个过程是被主函数“main”调用)
' 功能:剪贴板处理类。调用(类模块)ClipboardHandlerSub CopyToClipboard()' 实例化类Dim clipHandler As New ClipboardHandler' 准备要复制的字符串(可以是从控件读取的值)Dim testStr As StringtestStr = "测试字符串" ' 也可以从控件读取:testStr = TextBox1.TextCall clipHandler.CopyToClipboard(testStr) ' 调用复制方法Set clipHandler = Nothing ' 释放对象
End Sub
2、类模块(功能模块)
' 类模块:ClipboardHandler
' 功能:处理字符串复制到剪贴板,空字符串时仅提醒仍执行复制Option Explicit' Windows API声明
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As Long
Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
Private Declare PtrSafe Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As LongPtr) As LongPtr
Private