Word宏与VBA/VB

本文介绍了Visual Basic(VB)和Visual Basic for Applications(VBA)的基础知识,包括两者之间的区别,基本语句和函数的使用,以及在Microsoft Office中的应用实例,如Word宏的编写来修改图片大小、添加行号等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、  Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言。是一种可用于微软自家产品开发的语言。

2、Word宏

      宏是一个批量处理程序命令,正确地运用它可以提高工作效率。

      微软的office软件允许用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力

      Visual Basic for Applications (VBA),是 Microsoft Office 里的一种编程语言

      VBA 可以访问许多操作系统函数并支持文档打开时自动执行宏。这使得用这种语言写计算机病毒成为可能——宏病毒

3、VB和VBA的区别

      VBA是VB的一个子集,也可以讲是VB的简化版。

      Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件

4、基本语句、函数的作用

      ①Sub:过程;Function:函数

      ②Dim是用于声明变量并分配存储空间。

      ③MsgBox  弹出消息框
 

5、应用实例

word中使用宏修改图片大小使图片大小相同

宏的位置

直接点上面的宏而不要点下面的下拉三角

写好之后保存点击运行就可以了

 

代码:

Sub 修改图片大小()
'
' 修改图片大小 宏
'

    Dim iSha As InlineShape
    For Each iSha In ActiveDocument.InlineShapes
        If iSha.Type = wdInlineShapePicture Then
            iSha.LockAspectRatio = msoFalse '不锁定纵横比
            iSha.Width = CentimetersToPoints(5) '宽5CM
            iSha.Height = CentimetersToPoints(5) '高5CM
        End If
        Next
End Sub

2、为代码添加行号

运行宏之前和运行后

 

代码:

Sub 代码编写行号()
'
' 代码编写行号 宏
'
    Dim parag As Paragraph
    Dim nLineNum: nLineNum = 0
    Dim selRge As Range
    Set selRge = Selection.Range
    For Each parag In Selection.Paragraphs
        nLineNum = nLineNum + 1
    selRge.Paragraphs(nLineNum).Range.InsertBefore (Format$(nLineNum, "00") & "   ")
    Next

End Sub

3、Hello World

 

代码:

Sub HelloWorld()
'
' HelloWorld 宏
'
    MsgBox ("hello world !")

End Sub

4、简单交互

 

代码:

Sub 简单交互()
'
' 简单交互 宏
'
'
    Dim X
    X = InputBox("您的姓名是:")
    MsgBox (" 欢迎" & X & "来到宏编程世界!")

End Sub

 

VB访问word书签。 '实现代码如下 Dim cn As New ADODB.Connection Dim AdoRs As New ADODB.Recordset Dim WordTemps As New Word.Application Private Sub Form_Load() If cn.State = 1 Then cn.Close End If cn.CursorLocation = adUseClient cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" End Sub '开始导出数据 Private Sub Command1_Click() Dim strSQl As String Dim REC As Integer Dim i As Integer WordTemps.Documents.Add App.Path + "\货物合同.doc", False WordTemps.Selection.GoTo wdGoToBookmark, , , "合同标题" WordTemps.Selection.TypeText "关于冬季货物的成交合同" WordTemps.Selection.GoTo wdGoToBookmark, , , "合同编号" WordTemps.Selection.TypeText "2004000001" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约单位" WordTemps.Selection.TypeText "大科技公司,天天科技公司" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约地址" WordTemps.Selection.TypeText "北京中关村大厦" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约时间" WordTemps.Selection.TypeText fromat(Now, "yyyy-mm-dd") strSQl = "select * from Matrixs" AdoRs.Open strSQl, cn, adOpenKeyset, adLockOptimistic REC = AdoRs.RecordCount If REC < 1 Then MsgBox "无商品记录!", vbOKOnly, "提示" AdoRs.Close Exit Sub Else AdoRs.MoveFirst WordTemps.Selection.GoTo wdGoToBookmark, , , "货物清单" For i = 1 To REC WordTemps.Selection.TypeText AdoRs!名称 WordTemps.Selection.MoveRight unit:=wdCharacter, Count:=1 '右移一格 WordTemps.Selection.TypeText AdoRs!数量 WordTemps.Selection.MoveRight unit:=wdCharacter, Count:=1 '右移一格 WordTemps.Selection.TypeText AdoRs!规格 AdoRs.MoveNext If AdoRs.EOF = False Then WordTemps.Selection.InsertRowsBelow 1 '表格换行 End If Next i AdoRs.Close WordTemps.Visible = True '显示WORD窗口 End If End Sub '实现代码如下 Dim cn As New ADODB.Connection Dim AdoRs As New ADODB.Recordset Dim WordTemps As New Word.Application Private Sub Form_Load() If cn.State = 1 Then cn.Close End If cn.CursorLocation = adUseClient cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" End Sub '开始导出数据 Private Sub Command1_Click() Dim strSQl As String Dim REC As Integer Dim i As Integer WordTemps.Documents.Add App.Path + "\货物合同.doc", False WordTemps.Selection.GoTo wdGoToBookmark, , , "合同标题" WordTemps.Selection.TypeText "关于冬季货物的成交合同" WordTemps.Selection.GoTo wdGoToBookmark, , , "合同编号" WordTemps.Selection.TypeText "2004000001" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约单位" WordTemps.Selection.TypeText "大科技公司,天天科技公司" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约地址" WordTemps.Selection.TypeText "北京中关村大厦" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约时间" WordTemps.Selection.TypeText fromat(Now, "yyyy-mm-dd") strSQl = "select * from Matrixs" AdoRs.Open strSQl, cn, adOpenKeyset, adLockOptimistic REC = AdoRs.RecordCount If REC < 1 Then MsgBox "无商品记录!", vbOKOnly, "提示" AdoRs.Close Exit Sub Else AdoRs.MoveFirst WordTemps.Selection.GoTo wdGoToBookmark, , , "货物清单" For i = 1 To REC WordTemps.Selection.TypeText AdoRs!名称 WordTemps.Selection.MoveRight unit:=wdCharacter, Count:=1 '右移一格 WordTemps.Selection.TypeText AdoRs!数量 WordTemps.Selection.MoveRight unit:=wdCharacter, Count:=1 '右移一格 WordTemps.Selection.TypeText AdoRs!规格 AdoRs.MoveNext If AdoRs.EOF = False Then WordTemps.Selection.InsertRowsBelow 1 '表格换行 End If Next i AdoRs.Close WordTemps.Visible = True '显示WORD窗口 End If End Sub end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值