搜索
您的当前位置:首页正文

vbaword基本操作(经典)

2024-02-17 来源:六九路网


vbaword基本操作(经典)

一. 方法:

Word打开方法时调用的方法:Document_Open()

Word关闭时调用的方法:Document_Close()

调用subInt过程:Call subInt

Function fun() As Integer

‘代码

Fun=1

End Function

调用fun函数:在其他调用的方法或函数中直接用函数(因为函数要返回一个值),比如:if(fun=1)then….end if

1.1操作文件:

Private Sub deleteXML()

‘判断文件是否存在,然后删除文件

If Dir(ThisDocument.Path + \"/\" + filename1) <> \"\" Then

Kill (ThisDocument.Path + \"/\" + filename1) ‘

End If

End Sub

Private Sub rename()

‘重命名文件

If Dir(ThisDocument.Path + \"/\" + \"temp.xml\") <> \"\" Then

Name ThisDocument.Path & \"/\" & \"temp.xml\" As ThisDocument.Path & \"/\" & filename1

End If

End Sub

‘取得同目录下文件的名字

Private Sub HX_FileName()

Dim fso As Object, folder As Object, subfolder As Object, objFile As

Scripting.file '创建FSO对象

Set fso = CreateObject(\"scripting.filesystemobject\")

Set folder = fso.GetFolder(Path)

For Each objFile In folder.Files

If Strings.Right(objFile.Name, 8) = \"gplx.xml\" And Len(objFile.Name) > 8 Then filename1 = objFile.Name

Next

End Sub

二. 声明变量

Dim a as Integer

Public mybut As CommandBarButton

Public mybar As CommandBar

三. 常用语句

1.If(a=1) then

Else

End if

2.do while a<26

Loop

3. For ID = 0 To count - 1 Step 1

pidtemp = “123”

exit for ‘如果要跳出for语句,就加上此句

Next ID

四:字符串

字符串的替换:将textbox1中的内容的回车和换行都替换为空。

Strings.Trim(Strings.Replace(Strings.Replace(ThisDocument.TextBox1.text, Chr(13), \"\"), Chr(10), \"\"))

1.访问标签lbel1的值:thisdocument.label1.caption

2.textbox1的值.textbox1.text

3.combobox1的值:combobox1.text

五:窗体

Userform中的textbox中光标可能无法停留在textbox框的前面,应该设置它的属性

selecttionmargin=false

二.选中table表中的行列的值,

1.首先定义表量,如果当前的table在word中的位置是第一张table,则n=1,是第几张表(必须去数没有table表的标示),n就为几。

set mytable=activedocument.tables(n)

第一种方法:(不适用表中有合并单元格的表)

mytable.rows(2).cells(2).select '选中表的2行2列的值

selection.typetext textbox1.text '将选中的区域的值修改为当前textbox1的值,

第二种方法:(适用于所有的表,包括表中有合并的单元格)

myTable.Cell(2, 2)=textbox1.text

三.类型转化

Cint():强制转化为整形

CStr():强制转化为字符串型

2.提取时间的年月日

DateTime.Year(2008-10-9)

DateTime.Month()

DateTime.Day()

Label1.Caption = DateTime.Year(DateTime.Date)

Label2.Caption = DateTime.Month(DateTime.Date)

Label3.Caption = DateTime.Day(DateTime.Date)

3.

四.弹出对话框

MsgBox(\"信息不能为空\"),vbOKOnly+vbExclamation

五.控件

1.textbook

textbox获得焦点

TextBox1.SetFocus

2.ComboBox

2.1combobox1的下拉列表加的内容

Private Sub ComboBox1_DropButtonClick()

Dim oldValue As String

oldValue = ComboBox1.text

ComboBox1.Clear

ComboBox1.AddItem (\"北京地区\")

ComboBox1.AddItem (\"沈阳地区\")

initComboValue ComboBox1, oldValue

End Sub

2.2initCombovalue方法

Private Sub initComboValue(ByRef comBox As ComboBox, ByVal oldValue As String)

Dim i As Integer

For i = 0 To comBox.ListCount - 1

If comBox.List(i) = oldValue Then

comBox.ListIndex = i

Exit Sub

End If

Next i

End Sub

2.3 与combobox1关联的combobox3的下拉列表将会显示的内容

Private Sub ComboBox3_DropButtonClick()

Dim oldValue As String

oldValue = ComboBox3.text

ComboBox3.Clear

Select Case ComboBox1.value

Case \"数学\"

ComboBox3.AddItem (\"数学史\")

ComboBox3.AddItem (\"数理逻辑与数学基础\")

ComboBox.AddItem (\"数论\")

Case \"统计学\"

ComboBox3.AddItem (\"统计学其他学科\")

End Select

initComboValue ComboBox3, oldValue

End Sub

2.4如果有“请填写”选项的话,需要改变ComboBox的样式

Private Sub ComboBox2_Click()

If ComboBox2.text <> \"请填写\" And ComboBox2.text <> \"\" Then

ComboBox2.Style = fmStyleDropDownList

Else

ComboBox2.Style = fmStyleDropDownCombo

End If

End Sub

六.关闭窗体

1.关闭窗体:

Unload me '在方法里写这句话就行

七:菜单栏生成按钮

在菜单栏创建按钮控件,比如打开word文档时生成按钮。

Public Sub Load_button()

Set mybut = CommandBars.FindControl(Type:=msoControlButton, Tag:=\"完成\")

'添加按钮

Set mybar = CommandBars.Add(Name:=\"学术研讨控件\

mybar.Visible = True

Set mybut = mybar.Controls.Add(Type:=msoControlButton)

mybut.Caption = \"完成\"

mybut.Style = msoButtonCaption

mybut.Tag = \"完成\"

mybut.OnAction = \"Produces_xml\"

End Sub

*******************************************************************************

当点击次“完成”按钮时,调用过程Produces_xml

Private Sub Produces_xml()

‘代码

End Sub

八:生成xml文件

在当前目录下生成一个xml

Public Sub Produces_xml()

Dim txtMy As String '文件的内容变量

‘文件名

txtFlname = ThisDocument.Path + \"/\" + Strings.Replace(f1, Chr(13), \"\") + \".xml\"

‘文件内容

txtMy = \"\" + vbCrLf + \"\" + vbCrLf + \"\"

txtMy = txtMy + vbCrLf + \"\" + vbCrLf + \"\"

Open txtFlname For Output As #1

Print #1, txtMy 'dText '写入文件内容

Close #1

MsgBox (\"信息已经生成!\"), vbOKOnly + vbExclamation

End Sub

九.文档保护:当程序写完以后要进行word文档保护,工具-文档保护-编辑限制-填写窗体-启动文档强制保护。

但用户要调用后天的程序,所以要在用户调用程序时,自动取消文档保护,离开程序时,再自动保护(密码是yjt),所以一般主调方法里要加入此段代码:

***********************************************************

'取消文档保护

If ActiveDocument.ProtectionType <> wdNoProtection Then

ActiveDocument.Unprotect Password:=\"yjt\"

‘你要写的程序,放在中间

'打开文档保护

ActiveDocument.Protect Password:=\"yjt\

wdAllowOnlyFormFields

****************************************************************

在设计模式下不能保护,要退出设计模式后才可以保护。

十.Textbook框填写最大的内容,屏蔽回车和自动换行,使Textbook框中填写的内容达到最大值时不能自动换行。

Dim h As Integer

Dim y As Integer

Dim oldText As String

Private Sub main()

‘现在不太清楚main方法是否在程序的一开始自动调用的,好像不用也可以,只是对oldText的初始化

oldText = \"\"

End Sub

‘调用过程,当textbox23改变时调用下面的方法

Private Sub TextBox23_Change()

Call LineStr(TextBox23)

End Sub

‘当textbox23获得焦点时,oldText的赋值为空,隔断它与上面textbox框的连接,因为oldText可能会保存上一个textbox的内容

Private Sub TextBox23_GotFocus()

oldTextt=””

End Sub

‘主要过程

Private Sub LineStr(text As TextBox)

h = text.LineCount ‘记录textbox中用户输入的总行数

y = CInt(text.Height / 11) ‘求textbox能容纳的总行数,一种字体对应不同的参数,例如小四是11

If (h > y) Then

text.EnterKeyBehavior = False ‘使回车键失效

MsgBox (\"字数或行数超过限制 !\")

text.value = oldText

Else

text.EnterKeyBehavior = True

text.MultiLine = True

oldText = text.value

End If

End Sub

十一.系统时间

Private Sub UserForm_Activate()

d1 = CStr(DateTime.Year(DateTime.Date))

d2 = CStr(DateTime.Month(DateTime.Date))

d3 = CStr(DateTime.Day(DateTime.Date))

TextBox7.Text = d1 + \"-\" + d2 + \"-\" + d3

End Sub

12.得到word中的表格数:

ActiveDocument.Tables.Count

13,过滤字符串

'过滤字符串函数

'去掉回车,换行<>等特殊字符,

Function xmlStr(str As String) As String

str1 = Strings.Trim(Strings.Replace(Strings.Replace(str, Chr(13), \"\"), \"\

str2 = Strings.Replace(Strings.Replace(str1, \"&\

xmlStr = Strings.Replace(Strings.Replace(str2, \"<\

End Function

13.处理字符串

Private Function checkmess() As Integer

Dim i As Object, t As Integer

checkmess = 1 '初始化变量,来表明是否可以关闭窗体

For Each i In Me.Controls '遍历当前窗体下的子控件

If TypeName(i) = \"TextBox\" Then

i.value = Strings.Trim(i.value) '去掉多余的空格

If i.value = \"\" Then

checkmess = 0 '不能关闭窗体

MsgBox (\"信息不能为空!\"), vbOKOnly + vbExclamation

'如果此控件可以编辑,则可以获得焦点,否则不行

If i.Enabled = True Then

i.SetFocus

End If

Exit For

End If

End If

Next

End Function

15.word中textbox框的样式

'在程序员设计表格的时候可以调用此方法,设置textbox的样式

'一般将其放在限定字数的函数内,这样每在textbox框中输入一次就会调用此方法,省去了繁琐的劳动

'程序员将页面设计完成后,此方法就没用了,将其删除掉

private sub textboxstyle(text as TextBox)

text.BorderColor = &H80000005

text.EnterKeyBehavior = True

text.MultiLine = True

text.BorderStyle = fmBorderStyleSingle

end sub

因篇幅问题不能全部显示,请点此查看更多更全内容

Top