vb操作word全.docx
- 文档编号:29293741
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:30
- 大小:25.43KB
vb操作word全.docx
《vb操作word全.docx》由会员分享,可在线阅读,更多相关《vb操作word全.docx(30页珍藏版)》请在冰豆网上搜索。
vb操作word全
利用VB操作WORD
的基本方法
IE
!
E
!
EIE,■
!
E
DimMyWordAsWord.Appiication
DimMyWordBookAsWord.Document
SetMyWord=NewWord.Appiication
■
!
E
■I
lE
!
E
SetMyWordBook=MyWord.Documents.Add(ModelPath&"test.dot")'
打开test.dot用户自定义的WORD
模版
'MyWord=CreateObject("Word.Appiication")
'MyWord.Visible=False
!
E
■I
!
e
ii
'MyWord.Documents.Open("test.doc")
'MyWord.ActiveDocument.Bookmarks.Item("MM").Select
!
E
■I
£itii
'MyWord.Selection.Text="
从资料库取出的相应资料"
'MyWord.ActiveDocument.SaveAs("test1.doc")
IE
■I
!
E
11
!
t
ii
MyWordBook.Activate
WithMyWordBook
It
I■
ii
'.Paragraphs(.Paragraphs.Count).Range.Font.Size=30'
设置文字字体大小(其它设置类推)如果去
!
E一
!
E除.Paragraphs(.Paragraphs.Count)贝U表示所有行
ii
I■
iE
Paragraphs(.Paragraphs.Count).Alignment=wdAlignParagraphCenter'
设置文字居中等
it
■
!
e
.Content.InsertAfter"hello"&vbCrLf
'向WORD写入一行文字并回车
.Content.lnsertAfter"hello"
.Paragraphs(.Paragraphs.Count).Range.Font.Size=10
.Content.lnsertAfter"hello"
IE
.Bookmarks("mm").Range.lnsertAfter"name"
'在WORD指定位置(标签)写入文本,指定位置指WORD
rr
II标签
在WORD第一个表格的第2行第1列插入I
•Tables
(1).Cell(2,1).Range.lnsertAfter"nameFDSAFDSAFDSA"'
文本
.Tables
(1).Cell(2,2).Range.lnsertAfter"MM"
.Range(Start:
=.Paragraphs
(2).Range.Start+3,End:
=.Paragraphs
(2).Range.Start+8).Font.Size=30'
选定的文本(第二段开始位置加3至8的字体)设置字体,其它的累推
.Tables
(1).Cell(2,1).Range.Font.Size=20'
给选定的单元格设置字体,其它的累推
!
1
!
E
I■
!
E
if
EndWith
MyWord.Visible=True
!
E
I■
!
E
if
SetMyWord=Nothing
!
E
I■
!
E
it
SetMyWordBook=Nothing
!
E
I■
!
Eit
!
1、对其WORD内容设置字体样式,以及在WORD中插入表格,以及表格单元格融合与填充
1
I■
!
E
it*
QptionExplicit
ii
!
PrivateSubCommand1_Click()
!
E_
I■
!
!
!
DimfilenameAsString
!
■
!
E
jCD.ShowSave
:
L
!
1
■
!
E
filename=CD.filename
ii
I■
!
E
lOutWordfilename
IE
■
!
E
■I
liMsgBox"OK"
lEndSub
!
i
!
E
I■
!
E
\[
!
t
k
!
PrivateFunctionOutWord(ByValfilePathAsString)AsBoolean
ii
■
iOimnewDocAsWord.Document
iSetnewDoc=NewWord.Document
IWithnewDoc
!
E
aragraphs(.Paragraphs.Count).Range.Font.Name="
宋体"
!
..Paragraphs(.Paragraphs.Count).Range.Font.Size=10.5
!
e
!
E
■
#Paragraphs(.Paragraphs.Count).Alignment=wdAlignParagraphRight
IL
j.Content.lnsertAfter"編号:
"&vbCrLf
!
j
I.Paragraphs(.Paragraphs.Count).Range.Font.Name="
宋体"
!
E
I;
I.Paragraphs(.Paragraphs.Count).Range.Font.Size=26
IE
I.Paragraphs(.Paragraphs.Count).Range.Font.Bold=True
I■
!
E
i.Paragraphs(.Paragraphs.Count).Alignment=wdAlignParagraphCenteriiiE
I■
!
[Content.InsertAftervbCrLf&"XXXXXXXXX
報告"&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf
!
e
!
E
!
i
i.Paragraphs(.Paragraphs.Count).Range.Font.Name="
ii
iE
I■
!
..Paragraphs(.Paragraphs.Count).Range.Font.Size=15
is
宋体"
*Paragraphs(.Paragraphs.Count).Range.Font.Bold=False
i■
!
E
if
i.Paragraphs(.Paragraphs.Count).Alignment=wdAlignParagraphLeft
iE
iiContent.lnsertAfter"
ii
项目名称:
"&vbCrLf
!
.Content.lnsertAfter"
!
E
I■
IE
*Content.InsertAfter"
应急类型:
”&vbCrLf
预警状态:
正常/警界/危机”&vbCrLf
!
.Paragraphs(.Paragraphs.Count).Alignment=wdAlignParagraphCenter!
E
If………………
|h
I.Tables.AddRange:
=.Range(Start:
=.Range.End-1,End:
=.Range.End),NumRows:
=1,NumColumns:
=3,
:
■
iDefaultTableBehavior:
=wdWord9TableBehavior,AutoFitBehavior:
=wdAutoFitFixed
ii
[With.Tables。
)l|lf.Style<>"表(格子)"Then
:
■
■
gstyle="表(格子)"
iE
〔Endlf*ApplyStyleHeadingRows=True
:
■
!
!
■
#ApplyStyleLastRow=True
It
jjApplyStyleFirstColumn=TruekApplyStyleLastColumn=True
Ii
it
h-Columns.Width=50
it
iE
I■
I.Rows.Height=20lEndWith
Ih
!
E
IE
!
E
!
E
I■
宋体"
护aragraphs(.Paragraphs.Count).Range.Font.Name="
IE
^Paragraphs(.Paragraphs.Count).Range.Font.Size=15
I■
!
E
it
i.Paragraphs(.Paragraphs.Count).Range.Font.Bold=False
ii
!
E
I■
EParagraphs(.Paragraphs.Count).Alignment=wdAlignParagraphLeft
il
h-Content.lnsertAfter"
!
i
I■
!
E
ii
i.Content.lnsertAfter"
!
■
il
!
E
iiContent.lnsertAfter"
ii
委托人:
”&vbCrLf
预警机构:
"&vbCrLf
报告负责人:
”&vbCrLf
!
l.Content.lnsertAfter"
!
E
I■
!
E
!
i
时间:
”&vbCrLf
ii
d.Paragraphs(.Paragraphs.Count).Alignment=wdAlignParagraphLeft
ii
H.Tables.AddRange:
=.Range(Start:
=.Range.End-1,End:
=.Range.End),NumRows:
=8,NumColumns:
=2,ii
jpefaultTableBehavior:
=wdWord9TableBehavior,AutoFitBehavior:
=wdAutoFitFixed
ii
IWith.Tables
(2)
ii
『If.Style<>"表(格子)"Then
[.Style="表(格子)"
pEndIf
iE
!
.ApplyStyleHeadingRows=True
I.ApplyStyleLastRow=True
i!
■
I.ApplyStyleFirstColumn=True
It
j.ApplyStyleLastColumn=True
is
iLCell(2,1).Range.Text="项目名称”
Ii
if
I.Range.Cells(3).Row.Cells.Merge
!
E
I;
I.Range.Cells(3).Range.Font.Size=15
ij
i.Range.Cells(3).Range.Text="
I■
!
E
i.Range.Cells(4).Row.Cells.Merge
ii
!
E
信息来源/文献检索范围:
”&vbCrLf&vbCrLf&vbCrLf
I■
■.Range.Cells(4).Range.Text="
情况描述/检索结果:
”&vbCrLf&vbCrLf&vbCrLf
it
i.Range.Cells(5).Row.Cells.Merge
i■
!
E
!
i
i.Range.Cells(5).Range.Text="
!
b
影响分析:
”&vbCrLf&vbCrLf&vbCrLf&vbCrLf
iE
i.Range.Cells(6).Row.Cells.Merge
i.Range.Cells(6).Range.Text="
i■
!
E
ii
i.Range.Cells(7).Row.Cells.Merge
iE
i.Range.Cells(7).Range.Text="
ii
建议:
”&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf
专家组成员:
”&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf
I.Range.Cells(8).Row.Cells.Merge
i■
IE
*Range.Cells(8).Range.Text="
ii
!
E
i.Range.Cells(9).Row.Cells.Merge
ii
附件目录:
”&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf
[.Range.Cells(9).Range.Text="
报告负责人:
”&vbCrLf&vbCrLf&vbCrLf&vbCrLf&”
EndWith
EndWithnewDoc.SaveAsfilePathnewDoc.Close
EndFunction
2、
VB程序操作word表格(文字、图片)
很多人都知道,用vb操作excel的表格非常简单,但是偏偏项目中碰到了VB操作word表格的部分,google、
baidu搜爆了,都没有找到我需要的东西。
至惺搜索到了很多问这个问题的记录。
没办法,索性只有自己去尝试了。
F面把一些代码发上来,给需要的朋友一点提示
打开一个已经存在的wrod文件(这个文件包含了表格)
Dim
WordApp
Dim
Word
Set
WordApp.Visible
True
WordApp=CreateObject("Word.Application")
SetWord=WordApp.Documents.Open("c:
\record.dot")
知道了就很简单了,下面是选定某一个表格的一个单元格,并修改其内容
Word.Tables
(1).cell(1,2)="内容”
VBA中的这些数组元素下标都是从1开始的,比如excel的第一行一列也是ExSheet.Cells(1,1),而不是
ExSheet.Cells(0,0),WORD的表格也是这样,不信自己试一下就知道了
遇.
—O所以上面那句话的意思就是对整个word
文档中的第一个表格的第一行第二列的内容改变为“内容”。
很简单吧?
网上有些人在问是不是
Word.Tables
(1).cell(1,2).range.text
或者Word.Tables
(1).cell(1,2).text。
试一下就发现这2种都不对;&
插入图片其实也很简单,代码如下:
("c:
\photo.jpg")
iWord.Tables
(1).cell(1,3).Range.lniineShapes.AddPicture
VB对WORD做更多的应用,却又
微软的那一套东西集成得很不错,其之间任意调用非常方便,大家如果想用
!
S
I不知道怎么实现,我想最好的办法就是录制宏了,你把你想完成的功能操作一遍,然后查看宏,一目了然了吧!
II
|1
问题:
I我在vb中调用word打印报表,代码是在word中录制的宏拷贝过来的,但是在生成表格时编译通不过,代码如下:
Ie
|DimwdAPPAsWord.Application
Ii
if
iDimwdBookAsWord.Document
ii
IE
pimRangeAsRangeipimNumRowsAsLong
11
IE
ii
iDimNumColumnsAsLong
g
IE
iSetwdApp=CreateObject("Word.Application")
I;
■SetwdBook=wdApp.Documents.Add
Ii
1;
jwdApp.Visible=True
i!
it...
ii
IE
■--〉wdAPP.ActiveDocument.Tables.AddRange:
=Selection.Range,NumRows:
=16,NumColumns_
It
j:
=5,DefaultTableBehavior:
=wdWord9TableBehavior,AutoFitBehavior:
=_
ii_
iwdAutoFitWindow
it
I■
!
E
!
运行时上面这句报实时错误’91'
lE
I对象变量或with块变量未设置
ii
■
I该如何写?
!
!
IE
I看你的代码是想增加一个表格,
It
i■
ir
VBA的代码和VB的代码是不一样的,需要转换一下,多用几次就清楚了。
!
t
I应该这样写
〔CallwdBook.Tables.Add(wdBook.application.Selection.Range,16,5,1,0)
0'可题:
如果我要增加一个复杂的表格,举例说就是在表格中我要合并、拆分一些单元格,还要绘制表头(带斜线的),
i但是在word中录制宏时无法对表格进行这些操作,我该怎么办?
能不能给出一些代码?
It
i对策:
It
I接着上次那个程序来…。
[SetmySelection=wdApp.Documents.Application.SelectionmySelection.Cells.Borders(-7).LineStyle=1
itir
I'选中表格的第2行第3列
ir
!
table.Cell(2,3).Select
IE
i'向下移动6格,第1个参数和第3个是常数iCallwdBook.Application.Selection.MoveDown(5,6,1)
!
E
'WdBook.Application.Selection.Cells.Merge
11
I'拆分成7行2列
llWdBook.Appiication.Selection.Cells.Split(7,2,True)
■I
!
E
It
If
!
E
i问题:
我按你如上所说的方法去做,但是在执行
table.cell(2,3).select
时报错,错误为实时错误'424',要求对象,我不!
I知道是不是在table前需要加上wdapp还是wdbook,或者是myselection,不过我都试过了,还是不行,后面的就ii
i写不下去了。
我主要是想生成一个7列27行的表格,第1列的1、2两行合并为一个单元格,第1列的第5行和第6
I行合并做一个带斜线的表头,斜线上下要分别输入“压力计”和“测试点”作为表头分类,第
4行的第2、3、4列单i
I元格合并为一个单元格,5、6、7列合并为一个单元格,望楼主能详细写一下代码。
非常感谢!
我的代码如下:
Ii
■
ipimwdAppAsWord.Application
is
iDimwdBookAsWord.Document
!
1
[SetwdApp=CreateObject("Word.Application")
!
e
■
!
!
■
|SetwdBook=wdApp.Documents.Add
It
jWdApp.Visible=True
!
E
it
■
iwdApp.Selection.Font.Name="
E
I;
iwdApp.Selection.Font.Size=22
黑体”
iwdApp.Selection.ParagraphFormat.Alignment=wdAlignParagraphCenter
Ih
!
E
!
E
iwdApp.Selection.TypeTextText:
="
!
E
I■
IwdApp.Selection.TypeParagraph
!
:
通风机调试报告”
iwdApp.Selection.TypeParagraph
Ih
!
E
it
iwdApp.Selection.Font.Name="
!
b
!
l
!
E
I■
iwdApp.Selection.Font.Size=12
il
仿宋"
IpallwdApp.ActiveDocument.Tables.Add(wdApp.Application.Selection.Range,NumRows:
=27,NumColumns
I■
!
E
ii
!
_
ii
!
E
ii:
=7,DefaultTableBehavior:
=wdWord9TableBehavior,AutoFitBehavior:
=_
ii_
^WdAutoFitFixed)
i■
IE
jl
jSetmySelection=wdApp.Documents.Application.Selection
!
■
!
l
if
imySelection.Cells.Borders(-7).LineStyle=1
ii
!
E
it
I'选中表格的第2行第3列
it
!
E
卜>Table.Cell(2,3).Select
ii
li
i'向下移动6格,第1个参数和第3个是常数
!
e
pallwdBook.Application.Selection.MoveDown(5,6,1)
I'合并
It
ii
iwdBook.Application.Selection.Cells.Merge
g
1拆分成7行2列
if
ICallwdBook.Appiication.Selection.Cells.Split(7,2,True)
17
[SetwdBook=Nothing
ii
¥
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 操作 word
![提示](https://static.bdocx.com/images/bang_tan.gif)