本帖最后由 带劲儿 于 2015-5-21 19:35 编辑
接下来我们来做一个上贴中演示视频里的封装示例,首先要明确我提供的XML文件里面“文件操作”这个按钮的回调是WJCZ,所以我们可以像Ribbon回调一样像下面这样进行回调即可:
- Sub WJCZ(control As IRibbonControl)
- End Sub
复制代码 下面这个附件是我已经做好的窗体直接在VB里面添加文件添加进去即可,里面的代码也是我已经封装好的,我们来看一下其中一段代码:- Private Sub CommandButton2_Click()
-
- On Error Resume Next
- Set xlapp = GetObject(, "excel.application")
- If xlapp Is Nothing Then
- 'MsgBox "Excel没有运行"
- Exit Sub
- End If
-
- Dim cs
-
- If TextBox1.Value = "" Then
-
- MsgBox "请选择路径!", 48, "应用宝"
-
- Exit Sub
-
- End If
-
- If OptionButton4 = True Then
-
- xlapp.Workbooks.Add
-
-
- xlapp.Activate
-
- End If
-
- If OptionButton3 = True Then
-
- xlapp.Worksheets.Add After:=xlapp.Sheets(xlapp.Sheets.Count)
-
- End If
-
- folderpath = TextBox1.Value
-
- Call ShowFolderList(folderpath) '调用ShowFolderList显示当前文件夹中的文件
-
- Call subfolder(folderpath) '调用ShowFolderList显示当前文件夹子文件夹中的文件
-
- '当前工作表中
-
- xlapp.Range("a1") = "所在文件夹/文件名:/大小/最后修改时间/类型" '为A本赋值
-
- xlapp.Columns("a:a").Select '选择A列
-
- '以下为A列分列操作
-
- xlapp.Selection.TextToColumns Destination:=xlapp.Range("A1"), DataType:=xlDelimited, _
- TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
- Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
- :="/", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
- TrailingMinusNumbers:=True
-
- 'A到G列自动列宽
-
- 'Dim i, n
-
- i = xlapp.Range("a65536").End(xlUp).Row
-
- For n = 2 To i
-
- xlapp.Range("b" & n).Select
-
- xlapp.ActiveSheet.Hyperlinks.Add Anchor:=xlapp.Selection, Address:=xlapp.Cells(n, 1) & "" & xlapp.Cells(n, 2)
-
- Next
-
- xlapp.Columns("a:g").AutoFit
-
- If CheckBox2 = False Then
-
- xlapp.Range("A1").CurrentRegion.Hyperlinks.Delete
-
- End If
-
- If CheckBox1 = False Then
-
- xlapp.Columns(" C:F").Delete
-
- xlapp.Columns("A").Delete
-
- End If
-
-
- Unload Me
-
- End Sub
复制代码 统观以上代码,首先第一步是用Getobject获取Excel对象,然后只要涉及到Excel对象的都要加上xlapp即可。这个应该没有什么可说的了。下面我把文件操作这个窗体对象上传一下,你只需要将这个窗体对象添加到你的VB里面就行了。然后在Conect里面讲下列的回调代码粘进去:- '文件操作
- Sub ZtoolsSJTS(control As IRibbonControl)
- On Error Resume Next
- 文件操作.Show
- End Sub
复制代码 然后我们再增加一个VB里面日积月累的功能,在VB里面右键添加一个窗体控件选择日积月累:
然后在Conect的“IDTExtensibility2_OnConnection”里面添加如下代码: Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant) Set xlapp = Application '将xlapp赋值为Excel程序 frmTip.Show End Sub 再将文件操作的回调代码加进去: '文件操作 Sub WJCZ(control As IRibbonControl) On Error Resume Next 文件列表.Show End Sub 然后把我上传的附件当中的TXT文件跟你的dll放到一个文件夹下,然后编译一下你的dll在Excel里面加载一下看看是不是弹出下面的日积月累了?当你到了这一步就可以继续来看下面的教程了~~等你来呵呵。楼下接附件
|