用户登录
用户注册

分享至

vb调用word宏 vb如何用宏写word

  • 作者: 请叫我风儿哥
  • 来源: 51数据库
  • 2020-04-21

宏操作是在打开word文档以后录制的,也就是说运行宏也要在打开word文档后进行,所以要把宏复制到vb环境中去运行的话,就得先在vb中操作打开word文档,参考下面代码:(演示前请先c;下建一个文件名为test.doc的word空文档,操作完成后,你会发现C盘里有个aa.doc文件,你打开就会发现宏操作写的一则通知)

Private Sub Command1_Click()

Dim MyWord As Word.Application

Dim MyWordBook As Word.Document

Set MyWord = New Word.Application

Set MyWordBook = MyWord.Documents.Add("c:\test.doc") '打开test.doc用户自定义的空白WORD文档

MyWordBook.Activate

'3.放置宏代码

With MyWordBook

'此处就可以插入宏代码了

' Macro1 Macro

' 宏在 2009-9-20 由 adsl 录制

'

Selection.Font.Size = 30

Selection.FormattedText.Bold = True

Selection.Font.Color = wdColorBlack

Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

Selection.TypeText Text:=" 通知"

Selection.Font.Color = wdColorRed

Selection.TypeParagraph

Selection.Font.Size = 22

Selection.TypeText Text:=" 今天下午三一)"

Selection.MoveLeft Unit:=wdCharacter, Count:=2

Selection.TypeText Text:="("

Selection.MoveRight Unit:=wdCharacter, Count:=2

Selection.TypeText Text:="班 全体同学四点钟到操场进行体育课考试。"

Selection.TypeParagraph

Selection.TypeParagraph

Selection.TypeParagraph

Selection.TypeText Text:= _

" "

Selection.InsertDateTime DateTimeFormat:="yyyy-MM-dd", InsertAsField:= _

False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _

InsertAsFullWidth:=False

Selection.MoveUp Unit:=wdLine, Count:=1

Selection.Font.Size = 22

Selection.MoveRight Unit:=wdCharacter, Count:=1

Selection.TypeParagraph

Selection.Font.Size = 16

Selection.TypeText Text:=" "

Selection.Font.Color = wdColorRed

End With

'4.保存,关闭文档,退出

MyWord.Visible = False '设置WORD可见

MyWordBook.SaveAs FileName:="c:\aa.doc"

MyWordBook.Close

MyWord.Quit

Set MyWordBook = Nothing

Set MyWord = Nothing

MsgBox "操作完毕", vbOKOnly, "提醒"

unload me

End Sub

参考资料:http://hi.baidu.com/mizuda/blog

如何用VB调用WORD文档,请高手进,谢谢~!~

知道,不过不能直接读取,因为微软没有公布加密方式,所以要调用WORD来读取,然后获取它

先在工程的引用里面加上Microsoft Word 11.0 Object Library

Dim 剪切板文本

Dim Word文字处理系统界面 As Word.Application '建立一个word.application对象

Dim Word文档 As Word.Document

Dim Word文档文本 As Word.Selection '在word文字处理系统中添加一个文档

Set Word文字处理系统界面 = CreateObject("Word.Application") '选择对象

Word文字处理系统界面.Visible = False '不显示word.application,即word文字处理系统界面

Set Word文档 = Word文字处理系统界面.Documents.Open(文件路径)

Set Word文档文本 = Word文字处理系统界面.Selection

Word文档文本.WholeStory

Word文档文本.Copy

剪切板文本 = Clipboard.GetText(vbCFText) '放到text1中

Text1.Text = 剪切板文本

'Clipboard.SetData Temp

Word文档.Close '关闭文档

Word文字处理系统界面.Application.Quit

Set Word文字处理系统界面 = Nothing '清空变量

Set Word文档文本 = Nothing

'完成操作

我通过剪切板来获取文本,因为这样可以保留格式(本人独创)

如果直接获取也是可以的,不过格式全部丢失,所以我的方法会更好一点

vb调用word

源代码在办公室电脑上

明天上班贴给你

工程先引用word

Dim objWord As Object

Const CLASSOBJECT = "Word.Application"

Set objWord = CreateObject(CLASSOBJECT)

objWord.Visible = False ’隐藏word界面

Dim win As Object

Set win = objWord.Documents.Add(App.Path & "\V-2.dot") '打开word模版把记录替换到模版中

Set MyTable = win.Tables(1) '将数据写入word 表中

MyTable.Cell(5, 4) = Adodc1.Recordset.Fields("l1") & ""

MyTable.Cell(6, 4) = Adodc1.Recordset.Fields("l2") & ""

MyTable.Cell(7, 4) = Adodc1.Recordset.Fields("l3") & ""

MyTable.Cell(8, 4) = Adodc1.Recordset.Fields("l16") & ""

MyTable.Cell(9, 4) = Adodc1.Recordset.Fields("l17") & ""

objWord.Visible = True

objWord.PrintPreview = True

Do

DoEvents

'判断是否在预览状态

If Not objWord.PrintPreview Then

objWord.ActiveDocument.Close (0) '不保存直接退出

'objword.Quit '用它可以直接退出word 但是我用的时候总是卡后来干脆不用了手运关闭word

Exit Do

End If

Loop

我也是刚学还不精

希望对你有帮助来自:求助得到的回答

vb.net 2010 调用word程序 打开一个word文档

1 使用Shell函数直接调用

语法:Shell (pathname[,windowstyle]).Pathname是指要执行的程序的名字和任何必须的参数或命令行开关,可以包括目录和驱动器名;Windowstyle是执行程序的窗口风格的数字。

使用Shell调用Word比较简单,编程量小,但必须明确指定Word所在路径,这不利于移植,而且,不能对Word进行控制,不利于程序和Word之间的数据交换。

2 使用OLE自动化控制Microsoft Word

2.1 使用方法

(1)Word为OLE自动化提供一种称为“Basic”的对象,要在VB中控制Word ,首先要定义一个引用Word中“Basic”对象的对象变量:Dim Wordobj as Object

(2)将Word 中的“Basic”对象赋给该对象:Set Wordobj=CreateObject("Word.Basic")

(3)可以使用大多数WordBasic语句和函数控制Word或Word文档,使用方法和在Word宏中使用WordBasic指令的方法基本相同。

(4)关闭Word:Set Wordobj =Nothing。

注意:“Basic”对象不支持关闭它自己的一个方法。即若在OLE自动化中关闭了Word,则对象被置为Nothing,便不能再对对象进行操作,程序出错。

2.2 VB指令与WordBasic指令的差异

(1)有一些语句和函数不能使用,包括:控制结构,如While…Wend和If…Then…Else;声明语句,如Dim;定制对话框相关的语句:FileExit语句;要求数组变量作为参数的语句或函数。

(2)也有一些指令使用方法不同。①返回字符串以一个美元符($)结束的WordBasic函数的关键字必须括在方括号中。例如,在WordBasic宏中的GetBookmark$()语句:mark$=GetBookmark$("Address"),若用VB调用,必须这样写mark$=Wordobj.[Ge-tBookmark$]("Address")。②选择一个命令按钮用“True”,不选择用“False”

2.3 对OLE自动化的说明

Word可以为OLE自动化给另一个应用提供对象,但是它不能使用OLE自动化访问其它应用中的对象。例如:VB和Excel可以使用OLE自动化访问Word,但是Word不能使用OLE自动化访问它们。

  3 在包容器中嵌入Word对象

在VB中,要访问在包容器中嵌入的Word对象,首先要在项目中插入对象。做法如下:在窗体中插入OLE控件,对象类型选择“MicrosoftWord图片”或“Microsoft Word文档”,再按“确定”。

然后用Object属性访问文档或图片,并使用WordBasic语句和函数作用于它。嵌入的对象必须在可被访问之前被激活,可以使用Action属性激活OLE控件。例如,使用下面指令访问一个嵌入在称为OLE1的OLE控件中的文档:

    Dim Wordobj as Object

    OLE1.Action =7

    Set Wordobj =OLE1.Object.Application. WordBasic

其他方面,使用方法同OLE自动化。使用在包容器中嵌入的Word对象,Word显示的窗口大小、位置与OLE控件定义的大小、位置相同,而且工具栏显示位置与Word脱离。这一点与OLE自动化相比,是个不足。

总之,要想在Microsoft Visual Basic中控制Microsoft Word,最好使用OLE自动化,通过使用WordBasic指令对Word进行全面控制,而且,用户使用起来与使用Microsoft Word一样,非常方便。

有熟知VB和C++的大神没,怎么把Word的宏写在vs2008里

简单的说,c语言是面向过程的编程语言,也就是把解决问题的步骤一步一步写下来那种 而VB和C++都是面向对象的,也就是说,用它解决问题需要先把问题中涉及到的对象一个一个的抽象出来,然后再通过设计和调用对象里面的各种操作来解决问题。

CMD命令调word宏安全性设为低和信任VB项目命令。

您好,很高兴为您解答!

在【视图】选项卡中,选择【开发工具】,在【开发工具】选项卡中,选择【宏安全性】,设置为【高】。再打开文档,查看是否提示启用宏或禁用宏,试一试这两个选项。

如有疑问,请点击我的头像提问或访问WPS官方论坛,祝您生活愉快!

用VB调用word 分栏怎么做

使用VB编程时,有时需要调用Microsoft Word对文字进行编辑、排版及输出。为实现这种调用,可以使用Shell函数、OLE自动化、在包容器中嵌入Word对象等方法。经过试用和比较,总结出了这几种方法的各自特点。

1 使用Shell函数直接调用

语法:Shell (pathname[,windowstyle]).Pathname是指要执行的程序的名字和任何必须的参数或命令行开关,可以包括目录和驱动器名;Windowstyle是执行程序的窗口风格的数字。

使用Shell调用Word比较简单,编程量小,但必须明确指定Word所在路径,这不利于移植,而且,不能对Word进行控制,不利于程序和Word之间的数据交换。

转载请注明出处51数据库 » vb调用word宏 vb如何用宏写word

软件
前端设计
程序设计
Java相关