1.用VBA直接在WORD中能正常运行的方法或属性相关常量设置,在
前期绑定的好处在于,由该绑定类库所引申出来的常数、对象、属性和方法,都可以被直接应用。
对于wdPropertyLines和wdAlignParagraphCenter这些常数,如果在前期绑定时,那么这些常数就和其对应的值一一对应了,因为在类库的内部,已经对这些常数进行了定义和赋值。
然而通过后期绑定Set wordAppl = CreateObject("Word.Application")这种方法引用的word对象,仅仅wordAppl这个实例才拥有各种属性和方法。然而Microsoft Word 11.0 Object Library这个类库所包含的word.application仅仅只是其中的一个对象,wdPropertyLines和wdAlignParagraphCenter在这个类库中,但并不一定在word.application这个对象中。
而且,你的excel因为没有引用Microsoft Word 11.0 Object Library,所以计算机就不能识别,于是产生错误。
解决办法,你打开一个Word文档,然后在Word中通过 :
Sub xx()
Msgbox wdAlignParagraphCenter '弹出值为:1
MsgBox wdPropertyLines '弹出值为:23
End Sub然后,你在Excel中,使用如下代码:
.ParagraphFormat.Alignment = 1 '1 = wdAlignParagraphCenter
wdLines =.BuiltInDocumentProperties(23) '23 = wdPropertyLines你可以一试,希望能够正确,并对你有帮助!!
2.VBA 如何引用一个已打开的word,我在一个过程里打开了word文档,
建议把myworkbook 改为全局变量,在打开过程赋值后,后面的
Dim myworkbook As Word.Document
Set myworkbook = Application.Documents("C:\网络公共盘\Normal\C.docm")
'上面这句执行不了啊这两句去掉,不再重新定义并赋值。直接使用即可。
这里主要是你在程序内部打开的,操作起来还算便利。如果是在程序运行之前就已经打开的Word可以用其他方式(GetObject)获得。
3.excel VBA用何种代码实现调用word中的内容
只要定义一个Word.Application对象,
Set WordApp = CreateObject("Word.Application")
然后操作这个WordApp 对象就可以了,就像在Word中使用VBA一样,
打开文件用 WordApp.Documents.Open 文件路径
定位主要用 WordApp.Selection.Move系列指令,也可以用WordApp.Selection.Goto
具体的你可以用录制宏的方法在Word中看看用什么代码合适。
4.vba,word和excel相互调用
总是要有一个打开的时机的,总要有一段打开的代码,不然怎么凭空打开,怎么获取打开的文件名.
如果你想在你的宏运行前打开,你可以把调用与打开的代码放在宏运行的前面.
如:以excel打开word为例,你可以在Workbook_Open下放置你调用和打开word 的代码:
Private Sub Workbook_Open()
dim aaa as 。application
End Sub
方法你应该比较熟悉了,就是在vbaproject下双击ThisWorkbook,然后在上边的下拉列表里选对象和事件.
如果在宏中用路径打开被调用的文件,那么该文件就必须放在路径指定的位置,我不想这样。我想放在任意位置。
放在任意位置你可以用一个打开对话框呀,
如下面代码:
Dim fd As FileDialog
Dim Wbook As Workbook
Dim rowindex As Integer
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
With fd
.Filters.Add "EXCEL 文件", "*.xls", 1 '过滤
If .Show = -1 Then
rowindex = 1
For Each vrtSelectedItem In .SelectedItems
Set Wbook = Workbooks.Open(vrtSelectedItem)
5.VB中怎样直接打开word文件
试一下Shell函数
Shell 函数
执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。
语法:Shell(pathname[,windowstyle])
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。
windowstyle 命名参数有以下这些值:
常量 值 描述
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。
例如
Shell C:\windows\system32\notepad.exe, vbNormalFocus '打开记事本
只要把word的具体路径写对就可Shell打开了。
6.如何用VBA打开固定文件下所有WORD文件,自动运行宏后打印
处理思路为:制作一个Doc文档,里边包含处理过程的代码。需要使用时,将这个doc文档置于需要处理文档所在文件夹中,执行代码即可自动完成。如此即可达到一劳永逸的效果。
为便于使用,建议此doc文档中放置一个命令按钮(CommandButton,可标记为“开始执行”),一个可供显示处理过的文档名称的列表框(ListBox),单击命令按钮执行需要的处理过程,列表显示文档名,过程结束进行相应的提示。
假设您已经置入了CommandButton和ListBox,请双击CommandButton进入代码编辑窗口,将以下代码复制进去,补充完整您需要的一些操作代码即告完成。
'下面是需要复制的代码:
On Error GoTo handerr:
'请先单击代码编辑窗口的菜单“工具/引用”勾选“Microsoft Scripting Runtime”
'否则将无法使用本代码块,放弃使用 Dir 函数是为了不受版本影响
Dim Str1 As String
Dim Fso As New FileSystemObject
Dim Fl As File
Dim Fd As Folder
Dim odoc As Word.Document
If MsgBox("您确实需要开始执行此过程吗?", vbQuestion + vbYesNo, "提示") = vbNo Then
Exit Sub
End If
'清除显示已经处理的文档名列表,如果不需要,把下面一句删除
ListBox1.Clear
Set Fd = Fso.GetFolder(ThisDocument.Path)
'处理每一个文档
For Each Fl In Fd.Files
Str1 = LCase(Fl.Name)
If InStr(1, Str1, ".doc") > 0 And InStr(1, Str1, "~") = 0 And Str1 ThisDocument.Name Then
'如果不需要显示处理的文档名列表,请删除下面一句
ListBox1.AddItem Fl.Name
Set odoc = Documents.Open(CStr(Fl))
odoc.Activate
'下面填写您需要在打开文档后的一些处理动作,如设置页眉,插入图片等
'上面填写您需要处理的一些动作
odoc.Save '保存此文档
odoc.PrintOut '打印此文档
odoc.Close '关闭此文档
End If
Next Fl
'如果上面删除了列表显示语句,请把下面4行删除,再用最后一行进行操作结束
If ListBox1.ListCount > 0 Then
MsgBox "过程执行完毕!" & vbCrLf &; "列表中的" & ListBox1.ListCount &; "个文档等待打印机打印。", vbInformation, "提示"
Else
MsgBox "过程结束,没有任何文档可操作!", vbInformation, "提示"
End If
'msgbox "过程结束!",vbInformation,"提示"
Exit Sub
handerr:
MsgBox Err.Description, vbInformation, "错误提示"
7.怎么把word 宏设置成自动执行
通过为一个宏赋予某个特殊的名称,就可在执行某项操作(例如启动 Word 或打开文档)时自动运行宏。Word 将下列名称识别为自动宏,或称
“auto”宏。
AutoExec:启动 Word 或加载全局模板时
AutoNew:每次新建文档时
AutoOpen:每次打开已有文档时
AutoClose:每次关闭文档时
AutoExit:退出 Word 或卸载全局模板时
当以下条件之一为真时,将识别代码模块中的自动宏。
* 模块在自动宏(如 AutoExec)之后命名,并且包含一个名为“Main”的过程。
* 任何模块中的过程在自动宏之后命名。
与其他宏一样,自动宏也可以保存于 Normal 模板、其他模板或文档中。要让自动宏运行,它必须位于活动文档的 Normal 模板中,或活动文档
选用的模板中。
唯一例外的是 AutoExec 宏,它只有存储于以下位置时才可自动运行:Normal 模板、通过“模板和加载项”对话框全局加载的模板、或由
“Startup”文件夹指定的文件夹中的全局模板。
在命名冲突的情况下(多个自动宏名相同),Word 将运行上下文中最近的自动宏。例如,如果同时在文档及其附加的模板中创建了 AutoClose
宏,则仅执行文档中的自动宏。如果在 Normal 模板中创建了 AutoNew 宏,只有当文档或其附加模板中没有名为 AutoNew 的宏时,该自动宏才
能运行。
注:按住 Shift 可以终止自动宏的运行。例如,基于包含 AutoNew 宏的模板新建文档时,按住 Shift 可终止 AutoNew 宏的运行。方法是:按
住 Shift,单击(“文件”菜单)“新建”对话框中的“确定”按钮,并在显示新文档前持续按住 Shift。如果运行一个宏时有可能触发自动
宏,(这种情况,我没遇过!)可用下列指令终止自动宏的运行:WordBasic.DisableAutoMacros
8.Word VBA制作的窗体如何生成可执行程序
在Word2010文档窗口显示“开发工具”选项卡 “开发工具”功能区中包括VBA代码、宏代码、模板和控件等Word2010开发工具,默认情况下,“开发工具”选项卡并未显示在Word2010窗口中,用户需要手动设置使其显示,操作步骤如下所述: 第1步,打开Word2010文档窗口,依次单击“文件”→“选项”按钮,如图1所示。
图1 单击“选项”按钮 第2步,在打开的“Word选项”对话框中切换到“自定义功能区”选项卡,在“自定义功能区”区域的“主选项卡”列表中选中“开发工具”复选框,并单击“确定”按钮,如图2所示。 图2 选中“开发工具”复选框 第3步,返回Word2010文档窗口,可以在功能区看到“开发工具”选项卡,如图3所示。
图3 “开发工具”选项卡。
转载请注明出处51数据库 » vba打开word直接执行
达?矢抾哆拉?