用VB如何写插件啊。也就是要在word里加一个子commandbutton的按钮的那种如何做呢 用VB如何写插件啊。也就是要在word里加一个子commandbutton的按钮的那种如何做呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我恰好知道:)VBA的实现方法:1、在VB编辑器中实现你的代码(注意,不能是Private的)2、回到Word中,双击随便哪个工具栏就会弹出“自定义”对话框3、选择“工具栏”,右边的“新建”按钮可以创建你自己的工具条4、选择“命令”,在“类别”列表中选“宏”,右边“命令”列表中就会列出你定义的过程5、把需要的过程名字拖拽到步骤3 “新建”的工具条上,并在“更新所选内容”功能中进行相关设置。OK!按钮添加完毕。简单吧,连功能都连接上了呢。好了,给分吧。不过你这就20分,太少了!另开个帖子再给个百八十分的吧。我不嫌多的:) 用VB如何写插件啊。要用VB在word里加一个工具条并且工具条中的每个按钮对应我的一个外部程序或是宏。 你的问题分两步1,用VB在word里面加入一段宏2,在宏里面动态加载一个按钮我以前的帖子里面有代码,我去给你找来啊 我这个打开并且加入了宏,实现痕迹保留,注意这个技术不许用来开发宏病毒!!Private Sub Command1_Click()Dim wd As Word.ApplicationDim mydoc As DocumentDim xlcomp As VBComponentSet wd = New Word.ApplicationSet mydoc = wd.Documents.Open("D:\Documents and Settings\pw-panyg\My Documents\f.doc")On Error Resume NextSet xlcomp = wd.VBE.VBProjects(1).VBComponents.Add(vbext_ct_StdModule)If Err.Number <> 0 Then MsgBox Err.Description & Chr(10) & "请设置word中的宏安全性---可靠来源": Exit Subxlcomp.CodeModule.AddFromString "sub MySub()" & Chr(10) _ & "With ActiveDocument" & Chr(10) _ & ".TrackRevisions = True" & Chr(10) _ & ".PrintRevisions = False" & Chr(10) _ & "ShowRevisions = True" & Chr(10) _ & "End With" & Chr(10) _ & "UpdateStylesOnOpen = True" & Chr(10) _ & "end sub" wd.Visible = Truewd.Run "MySub"End Sub Add 方法(Controls 集合) 在 Controls 集合中添加一个控件并返回一个对该控件的引用。语法object.Add (ProgID, name, container)Add 方法语法有这些部分:部分 描述 Object 必需的。一个对象表达式,其值是“应用于”列表中的一个对象。 ProgID 必需的。一个标识控件的字符串。大多数控件的 ProgID 都可通过查看对象浏览器来决定。控件的 ProgID 是由控件的库和类组成的。例如,CommandButton 控件的 ProgID 是 VB.CommandButton。在 ProgID 与对象浏览器中所显示的不一样的情况下,Visual Basic 将显示一个包括正确 ProgId 的错误信息。 name 必要的。一个字符串,用来标识集合的成员。 container 可选的。一个对象引用,它指定控件的容器。如果没有指定或为 NULL,缺省值为 Controls 集合所属的容器。通过指定该参数,可以把一个控件放置在任何现存的容器控件(如 Frame 控件)中。用户控件或 ActiveX 文档也可以作为一个容器。 说明注意 Controls 集合是后期绑定的集合。这意味着编译器不能预先决定集合以及它们的对象或它们的界面包含哪些控件。没有这些信息,自动语句生成器不能工作。该方法允许您在运行时向应用程序中添加控件。即使在应用程序已经被编译与部署之后,动态控件添加也可以用来向应用程序添加一个控件的功能。例如,您可能有几个复杂的用户控件,每个适合于一个不同的任务。由于外部因素不同,如时间或日期或用户输入,不同的用户控件可以被添加到一个应用程序中的某个现存窗体。您也可以利用这个方法的 container 参数来指定一个容器控件(如 Frame 控件)来放置这个控件。或您可以设计一个自动读取文件、数据库或注册表项来加载新控件的应用程序。用这种方法,您可以修改一个应用程序而不必重新部署它。重点 当您添加一个未引用的需要许可证的控件到一个现存的(已部署好的)应用程序时,在使用 Add 方法之前您必须也添加这个控件的许可证关键字。关于什么时候和如何添加许可证有关信息,请参阅“请参阅”列表中的“Licenses 集合”。在运行时添加未引用的控件您也可以利用 Add 方法来动态添加一个在工程中没有被引用的控件。(“未引用的”控件是不出现在 Toolbox 中的控件)。为此,您必须也把控件的 License 关键字添加到 Licenses 集合中。下面的示例中在添加控件本身之前添加了控件的许可证关键字:Option ExplicitPrivate WithEvents extCtl As VBControlExtenderPrivate Sub Form_Load() Licenses.Add "prjWeeks.WeeksCtl", "xydsfasfjewfe" Set extCtl = Form1.Controls.Add("prjWeeks.WeeksCtl", "ctl1") extCtl.Visible = True ' The control is invisible by default.End Sub注意 请参阅关于检索控件许可证关键字的详细信息的“请参阅”列表中的“增加方法 (Licenses 集合) ”。但是,为了编程这样一个未引用控件的事件,您必须使用 WithEvents 关键字声明一个对象变量为VBControlExtender 对象(如上),并且设置该对象变量到 Add 方法返回的引用上。然后,利用VBControlExtender 对象的 ObjectEvent 事件来编程该控件的事件。下面是一个简单的例子。Option ExplicitDim WithEvents objExt As VBControlExtender '声明 Extender 变量Private Sub LoadControl() Licenses.Add "Project1.Control1", "xydsfasfjewfe" Set objExt = Controls.Add("Project1.Control1", "myCtl") objExt.Visible = True End SubPrivate Sub extObj_ObjectEvent(Info As EventInfo) '使用 Select Case 编程控件的事件。 Select Case Info.Name Case "Click" '这里处理 Click 事件。 '现在显示其他的 case Case Else '未知事件 '这里处理未知事件。 End SelectEnd SubNote 不能把一个固有的控件指定给这个 VBControlExtender 变量; 任何这种试图将引起类型不匹配错误。但是,您也可以通过使用 WithEvents 关键字声明一个对象变量,并且设置该方法返回的引用为该变量,从而编程一个动态添加控件的事件,如下所示。Option Explicit'声明对象变量为 CommandButton 。Private WithEvents cmdObject As CommandButton Private Sub Form_Load() Set cmdObject = Form1.Controls.Add("VB.CommandButton", "cmdOne") cmdObject.Visible = True cmdObject.Caption = "Dynamic CommandButton"End SubPrivate Sub cmdObject_Click() Print "This is a dynamically added control"End Sub如果希望添加一个用户控件或任何 ActiveX 控件到您的窗体,必须或者把这个控件添加到“工具箱”,或者把控件的 License 关键字添加到 Licenses 集合中。有关详细信息请参阅“增加方法 (Licenses 集合)”。注意 如果您添加一个 ActiveX 或用户控件到您的工程,但是没有在窗体中使用它,您也必须不要选定“工程属性”对话框的“生成” 选项卡上的“删除有关未使用的 ActiveX 控件”选项。如果您的应用程序试图添加该控件,那么该 Add 方法将失败,因为必需的信息已经被丢弃。删除控件要删除动态添加的控件,用“移除”方法。请注意,您只能删除那些用“添加”方法添加的控件(与用“Load”语句添加的控件进行对比)下面的示例删除一个动态添加的控件:Form1.Controls.Remove "ctl1" ' 该控件的名称为 ctl1。 测试一下你的系统... VB怎么连接远程的ACCESS数据库(文件夹只读) MScomm 发送 16进制的命令 急,在VB中应用WebBrowser使用网页!!!!! 一个进退两难的问题 vb做得activeDll不能接受参数,怎么解决这个问题 在VB中怎样进行定位打印???????? 哪里有 VB 或 ASP 的CRM 源程序? 怎样在程序中调用IE6.0的打印预览? 我的电脑开机后,总是重新启动,不知这是怎么回事? 如何实现winsock控件的多线程通讯 关于vb.net的print函数
1、在VB编辑器中实现你的代码(注意,不能是Private的)
2、回到Word中,双击随便哪个工具栏就会弹出“自定义”对话框
3、选择“工具栏”,右边的“新建”按钮可以创建你自己的工具条
4、选择“命令”,在“类别”列表中选“宏”,右边“命令”列表中就会列出你定义的过程
5、把需要的过程名字拖拽到步骤3 “新建”的工具条上,并在“更新所选内容”功能中进行
相关设置。
OK!按钮添加完毕。简单吧,连功能都连接上了呢。
好了,给分吧。不过你这就20分,太少了!另开个帖子再给个百八十分的吧。我不嫌多的:)
里加一个工具条并且工具条中的每个按钮对应我的一个外部程序或是宏。
1,用VB在word里面加入一段宏
2,在宏里面动态加载一个按钮
我以前的帖子里面有代码,我去给你找来啊
Private Sub Command1_Click()
Dim wd As Word.Application
Dim mydoc As Document
Dim xlcomp As VBComponent
Set wd = New Word.ApplicationSet mydoc = wd.Documents.Open("D:\Documents and Settings\pw-panyg\My Documents\f.doc")
On Error Resume Next
Set xlcomp = wd.VBE.VBProjects(1).VBComponents.Add(vbext_ct_StdModule)
If Err.Number <> 0 Then MsgBox Err.Description & Chr(10) & "请设置word中的宏安全性---可靠来源": Exit Sub
xlcomp.CodeModule.AddFromString "sub MySub()" & Chr(10) _
& "With ActiveDocument" & Chr(10) _
& ".TrackRevisions = True" & Chr(10) _
& ".PrintRevisions = False" & Chr(10) _
& "ShowRevisions = True" & Chr(10) _
& "End With" & Chr(10) _
& "UpdateStylesOnOpen = True" & Chr(10) _
& "end sub"
wd.Visible = True
wd.Run "MySub"
End Sub
Add 方法(Controls 集合)
在 Controls 集合中添加一个控件并返回一个对该控件的引用。语法object.Add (ProgID, name, container)Add 方法语法有这些部分:部分 描述
Object 必需的。一个对象表达式,其值是“应用于”列表中的一个对象。
ProgID 必需的。一个标识控件的字符串。大多数控件的 ProgID 都可通过查看对象浏览器来决定。控件的 ProgID 是由控件的库和类组成的。例如,CommandButton 控件的 ProgID 是 VB.CommandButton。在 ProgID 与对象浏览器中所显示的不一样的情况下,Visual Basic 将显示一个包括正确 ProgId 的错误信息。
name 必要的。一个字符串,用来标识集合的成员。
container 可选的。一个对象引用,它指定控件的容器。如果没有指定或为 NULL,缺省值为 Controls 集合所属的容器。通过指定该参数,可以把一个控件放置在任何现存的容器控件(如 Frame 控件)中。用户控件或 ActiveX 文档也可以作为一个容器。
说明注意 Controls 集合是后期绑定的集合。这意味着编译器不能预先决定集合以及它们的对象或它们的界面包含哪些控件。没有这些信息,自动语句生成器不能工作。该方法允许您在运行时向应用程序中添加控件。即使在应用程序已经被编译与部署之后,动态控件添加也可以用来向应用程序添加一个控件的功能。例如,您可能有几个复杂的用户控件,每个适合于一个不同的任务。由于外部因素不同,如时间或日期或用户输入,不同的用户控件可以被添加到一个应用程序中的某个现存窗体。您也可以利用这个方法的 container 参数来指定一个容器控件(如 Frame 控件)来放置这个控件。或您可以设计一个自动读取文件、数据库或注册表项来加载新控件的应用程序。用这种方法,您可以修改一个应用程序而不必重新部署它。重点 当您添加一个未引用的需要许可证的控件到一个现存的(已部署好的)应用程序时,在使用 Add 方法之前您必须也添加这个控件的许可证关键字。关于什么时候和如何添加许可证有关信息,请参阅“请参阅”列表中的“Licenses 集合”。在运行时添加未引用的控件
您也可以利用 Add 方法来动态添加一个在工程中没有被引用的控件。(“未引用的”控件是不出现在 Toolbox 中的控件)。为此,您必须也把控件的 License 关键字添加到 Licenses 集合中。下面的示例中在添加控件本身之前添加了控件的许可证关键字:Option Explicit
Private WithEvents extCtl As VBControlExtenderPrivate Sub Form_Load()
Licenses.Add "prjWeeks.WeeksCtl", "xydsfasfjewfe"
Set extCtl = Form1.Controls.Add("prjWeeks.WeeksCtl", "ctl1")
extCtl.Visible = True ' The control is invisible by default.
End Sub注意 请参阅关于检索控件许可证关键字的详细信息的“请参阅”列表中的“增加方法 (Licenses 集合) ”。但是,为了编程这样一个未引用控件的事件,您必须使用 WithEvents 关键字声明一个对象变量为VBControlExtender 对象(如上),并且设置该对象变量到 Add 方法返回的引用上。然后,利用VBControlExtender 对象的 ObjectEvent 事件来编程该控件的事件。下面是一个简单的例子。Option Explicit
Dim WithEvents objExt As VBControlExtender '声明 Extender 变量Private Sub LoadControl()
Licenses.Add "Project1.Control1", "xydsfasfjewfe"
Set objExt = Controls.Add("Project1.Control1", "myCtl")
objExt.Visible = True
End SubPrivate Sub extObj_ObjectEvent(Info As EventInfo)
'使用 Select Case 编程控件的事件。
Select Case Info.Name
Case "Click"
'这里处理 Click 事件。
'现在显示其他的 case
Case Else '未知事件
'这里处理未知事件。
End Select
End SubNote 不能把一个固有的控件指定给这个 VBControlExtender 变量; 任何这种试图将引起类型不匹配错误。但是,您也可以通过使用 WithEvents 关键字声明一个对象变量,并且设置该方法返回的引用为该变量,从而编程一个动态添加控件的事件,如下所示。Option Explicit
'声明对象变量为 CommandButton 。
Private WithEvents cmdObject As CommandButton Private Sub Form_Load()
Set cmdObject = Form1.Controls.Add("VB.CommandButton", "cmdOne")
cmdObject.Visible = True
cmdObject.Caption = "Dynamic CommandButton"
End SubPrivate Sub cmdObject_Click()
Print "This is a dynamically added control"
End Sub如果希望添加一个用户控件或任何 ActiveX 控件到您的窗体,必须或者把这个控件添加到“工具箱”,或者把控件的 License 关键字添加到 Licenses 集合中。有关详细信息请参阅“增加方法 (Licenses 集合)”。注意 如果您添加一个 ActiveX 或用户控件到您的工程,但是没有在窗体中使用它,您也必须不要选定“工程属性”对话框的“生成” 选项卡上的“删除有关未使用的 ActiveX 控件”选项。如果您的应用程序试图添加该控件,那么该 Add 方法将失败,因为必需的信息已经被丢弃。删除控件
要删除动态添加的控件,用“移除”方法。请注意,您只能删除那些用“添加”方法添加的控件(与用“Load”语句添加的控件进行对比)下面的示例删除一个动态添加的控件:Form1.Controls.Remove "ctl1" ' 该控件的名称为 ctl1。