简介
宏编码,即实现宏的代码。所谓宏,就是一些命令组织在一起,作为一个单独命令完成一个特定任务。
MicrosoftWord中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”。Word使用宏语言VisualBasic将宏作为一系列指令来编写。
计算机科学里的宏是一种抽象的,根据一系列预定义的规则替换一定的文本模式。Excel办公软件自动集成了“VBA”高级程序语言,用此语言编制出的程序可认为是一种宏编码。
宏语言宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言并未在通用编程中广泛使用,但在文本处理程序中应用普遍。
①宏定义
c程序提供的预处理功能之一。包括带参数的宏定义和不带参数的宏定义。具体是指用一个指定的标志符来进行简单的字符串替换或者进行阐述替换。形式为:
#define标志符[(参数表)]字符串
②宏名
在上定义中的标志符被称为“宏名”。
③宏展开
在c程序编译时将宏名替换成字符串的过程称为“宏展开”。
常用EXCEL编码举例1.本示例为设置密码窗口
If Application.InputBox("请输入密码:") = 1234 Then
[A1] = 1 '密码正确时执行
Else: MsgBox "密码错误,即将退出!" '此行与第2行共同设置密码
End If
2.本示例为设置工作表密码
ActiveSheet.Protect Password:=641112 ' 保护工作表并设置密码
ActiveSheet.Unprotect Password:=641112 '撤消工作表保护并取消密码
3.本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容
For Each w In Workbooks
If w.Name ThisWorkbook.Name Then
w.Close SaveChanges:=True
End If
Next w
4.每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口
Application.WindowState = xlMaximized
5.本示例显示活动工作表的名称
MsgBox "The name of the active sheet is " & ActiveSheet.Name
6.本示例保存当前活动工作簿的副本
ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS"
7.下述过程激活工作簿中的第四张工作表
Sheets(4).Activate
8.下述过程激活工作簿中的第1张工作表
Worksheets(1).Activate
9.本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改
ThisWorkbook.Saved = True
ThisWorkbook.Close
10.本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算
Worksheets(1).EnableCalculation = False
11.下述过程打开 C 盘上名为 MyFolder 的文件夹中的 MyBook.xls 工作簿
Workbooks.Open ("C:\MyFolder\MyBook.xls")
12.本示例显示活动工作簿中工作表 sheet1 上单元格 A1 中的值
MsgBox Worksheets("Sheet1").Range("A1").Value
13.本示例显示活动工作簿中每个工作表的名称
For Each ws In Worksheets
MsgBox ws.Name
Next ws
14.本示例向活动工作簿添加新工作表 , 并设置该工作表的名称
Set NewSheet = Worksheets.Add
NewSheet.Name = "current Budget"
15.本示例将新建的工作表移到工作簿的末尾
'Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.Move After:=Sheets(Sheets.Count)
End Sub
16.本示例将新建工作表移到工作簿的末尾
'Private Sub App_WorkbookNewSheet(ByVal Wb As Workbook, _
ByVal Sh As Object)
Sh.Move After:=Wb.Sheets(Wb.Sheets.Count)
End Sub
17.本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称
Set NewSheet = Sheets.Add(Type:=xlWorksheet)
For i = 1 To Sheets.Count
NewSheet.Cells(i, 1).Value = Sheets(i).Name
Next i
18.本示例将第十行移到窗口的最上面
Worksheets("Sheet1").Activate
ActiveWindow.ScrollRow = 10
19.当计算工作簿中的任何工作表时,本示例对第一张工作表的 A1:A100 区域进行排序
'Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
With Worksheets(1)
.Range("a1:a100").Sort Key1:=.Range("a1")
End With
End Sub
20.本示例显示工作表 Sheet1 的打印预览
Worksheets("Sheet1").PrintPreview
21.本示例保存当前活动工作簿
ActiveWorkbook.Save
22.本示例保存所有打开的工作簿,然后关闭 Microsoft Excel
For Each w In Application.Workbooks
w.Save
Next w
Application.Quit
23.下例在活动工作簿的第一张工作表前面添加两张新的工作表
Worksheets.Add Count:=2, Before:=Sheets(1)
24.本示例设置 15 秒后运行 my_Procedure 过程,从现在开始计时
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
25.本示例设置 my_Procedure 在下午 5 点开始运行
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
26.本示例撤消前一个示例对 OnTime 的设置
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False
27.每当工作表重新计算时,本示例就调整 A 列到 F 列的宽度
'Private Sub Worksheet_Calculate()
Columns("A:F").AutoFit
End Sub
28.本示例使活动工作簿中的计算仅使用显示的数字精度
ActiveWorkbook.PrecisionAsDisplayed = True
29.本示例将工作表 Sheet1 上的 A1:G37 区域剪下,并放入剪贴板
Worksheets("Sheet1").Range("A1:G37").Cut
更多详见参考。1
Word中的代码编写行号首先需要创建一个宏,如何来做呢?以Word 2010为例,在工具栏中,选择“视图”,点击“宏”,如下图所示。2
然后点击【查看宏】:
在弹出的对话框中,点击【创建】。
在VBA的代码区写下如下代码:
Sub HangHao()Dim parag As ParagraphDim nLineNum: nLineNum = 0Dim selRge As RangeSet selRge = Selection.RangeFor Each parag In Selection.ParagraphsnLineNum = nLineNum + 1selRge.Paragraphs(nLineNum).Range.InsertBefore (Format$(nLineNum, "00") & " ")NextEnd Sub写完后,点击保存,退出VBA代码区。
为了经常能用到这个宏,我们就需要在Word【文件】->【选项】中,找到【快速访问工具栏】,把这个宏取个好听的名称,并配一个图标,最后,它就乖乖滴出现在快速启动栏中。过程如下图所示。
实验前,原始代码是没有行号的:
点击自己设计的宏图标,使用宏后的效果如下: