如何在word中通过添加宏代码使用宏功能

如何在word中通过添加宏代码使用宏功能,第1张

在word中通过添加宏代码使用茄缺宏功能的具体 *** 作步骤如下:

1、首先在电脑上点击打开“Wor”应用软件,在开始工具选项中可看见“宏功能”。

2、然后在电脑上的文件中找到下载好的宏代码洞纳兄文件,接着使用鼠标双击此文件。

3、然后等待此文件的自动安装,等待安装的完成。

4,安装完成之后,返回到刚纳袭进行打开的Word应用软件的页面的开始工具选项中就可以点击使用宏功能选项了。

供参考:

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

EXCEL加载宏制作攻略

[日期:2007-08-01] 来源:  作者:QEE用 [字体:大 中 小]

一、概述

1.制作加载宏的一般步骤

(1)创建一个新的工作薄,在其中添加代码。

(2)在“文件”菜单上单击“属性”。在“文件名 属性”对话框中,单击“摘要信息”选项卡,然后在“标题”框中为加载宏指定一个您希望在“加载宏”对话框中出现的名称,在“备注”框中输入您希望当用户从“加载宏”对话框选择该加载宏时在“加载宏”对话框下方出现的说明信息。斗洞孙

(3)在“文件”菜单上单击“另存为”。在“另存为颤慎”对话框中,从“保存类型”框中选择“Microsoft Office Excel 加载宏(*.xla)”,然后再选择保存空链路径,并可在“文件名”框中修改文件名。

2.加载宏的加载和卸载

通过在“工具”菜单上单击“加载宏”,可以加载制作好的加载宏文件,如果它不在列表中,可以在“加载宏”对话框中单击“浏览”找到它,当某个加载宏名称前的复选框被选中时,说明它已经加载,取消选中复选框即为卸载该加载宏。

3.加载宏的作用

加载宏可以扩展EXCEL的功能,将代码写在加载宏中和写在普通的工作簿中相比,有如下优点:

(1)加载宏对所有打开的EXCEL文件都生效。普通工作簿的代码一般只在特定的工作簿中才生效。

(2)加载宏不受宏安全级的限制,也不会有宏运行的提示。即使将安全级设为“非常高”,加载宏就象EXCEL本身固有的功能一样工作。同样,它也不会被按住的Shift屏蔽。

特别提请不习惯使用加载宏而专门VBA代码书写的朋友们注意的是,加载宏的所有好处和优点,都是属于EXCEL的常规 *** 作者的,虽然加载宏中的代码可以被其他工作簿(中的代码)调用,但这样做是繁琐而低效的,千万不要把它当成了C中的“头”文件或链接库。也许不会有很多人这样认为,但笔者初学VBA的时候,真的这样天真过。

(3)加载宏在运行时其工作簿窗口是隐藏的,因此普通用户并不会感觉到它的存在。

二、处理加载宏函数

加载宏函数似乎是制作加载宏中最简单的,通常它只需要在模块中写一段Function代码,它就会和EXCEL自身的函数一样使用,并且出现在“插入函数”对话框的列表中。关于函数的制作,再没有其它的吗?

1.为函数添加说明信息

至少你可以通过对象浏览器设置“属性”为函数添加一段说明信息(对需要换行的说明可以在编辑时使用组合键CTRL+ENTER),这些信息当用户使用“插入函数”对话框时就会看到。需要说明的是,在对象浏览器中为函数添加说明信息必须在“另存为”加载宏之前,一旦文件名的后缀变为了XLA,函数的属性设置将不被接受。

关于为函数定制说明信息,请参见:图示自定义函数描述信息及有关介绍。

现在,请你新建一个工作簿,插入模块,粘贴下面的代码:

Function dx(n)

' by gly1126 金额小写转换为大写

dx = Replace(Application.Text(Round(n+0.00000001, 2), "[DBnum2]"), ".", "元")

dx = IIf(Left(Right(dx, 3), 1) = "元", Left(dx, Len(dx) - 1) & "角" & Right(dx, 1) & "分", IIf(Left(Right(dx, 2), 1) = "元", dx & "角整", IIf(dx = "零", "", dx & "元整")))

dx = Replace(Replace(Replace(Replace(dx, "零元零角", ""), "零元", ""), "零角", "零"), "-", "负")

End Function

如果觉得必要,你可以设置文件属性(见一、1.(2))并为该函数添加说明,先把它做为普通的工作簿保存(我们后面还会继续用它)再另存为XLA,然后感受一下它的效果吧。

对已经成为XLA文件的函数说明的添加及修改并不需要总是手工先还原为XLS文件,我们稍后就会提到MacroOptions方法。在此之前,先来说一下与加载宏相关的Workbook事件:

(1)AddinInstall和AddinUninstall。这两个事件分别发生在加载宏加载和卸载时的,因此使用这两个事件的工作簿一定是XLA工作簿,你需要记住的是,它们在加载宏作用期内各自只会发生一次,加载宏加载后每次EXCEL的打开和关闭都不会触发它们。

(2)Open和BeforeClose。和上两个事件不同,这两个事件在加载宏作用期内会被多次触发,除了分别发生在AddinInstall后和AddinUninstall前之外,每次打开和关闭EXCEL时都会触发它们。

清楚了上述特性,你就应该知道如何合理安排加载宏的初始化代码。

2.为函数分类

默认情况下,当用户使用“插入函数”时,加载宏函数会被分类放在“用户定义”类别中。

哦,没有个性!有的朋友甚至还会有被歧视的感觉呢,怎样才能和EXCEL自身的函数一样被放在“财务”类呢?我们会想到MacroOptions方法:

Application.MacroOptions Macro:="dx", Category:=1

不熟悉这个方法不要紧,看完后面的例子你再去查看一下它的帮助,很快就会掌握的。

现在的问题,上面的语句放在哪儿呢?首先把它放在AddinInstall事件中看看,你会发现,在第一次加载时,目的确实达到了,但当你关闭EXCEL重新打开时,却发现它又回到了“用户定义”中,看来需要放在Open事件中:

Private Sub Workbook_Open()

ThisWorkbook.IsAddin = False

Application.MacroOptions Macro:="dx", Category:=1

ThisWorkbook.IsAddin = True

ThisWorkbook.Saved = True

End Sub

你会发现,除了我们需要的,又增加了3条语句,这是因为加载宏文件与普通EXCEL文件除了后缀形式上的区别外,一个重要的内在区别就是IsAddin属性,该属性为True 说明是加载宏工作簿,MacroOptions方法对宏的设置不能在隐藏的工作簿中进行,需要先将还原为普通工作簿,加入宏设置后再改回。这两次改变不会触发AddinInstall和AddinUninstall事件,但EXCEL会记住普通EXCEL文件的修改,因此在完成设置后,还需要加一句ThisWorkbook.Saved = True以使EXCEL忘记这种改变。

下面列出了EXCEL内部分类对应的Category参数的整数。

1:财务           2:日期与时间     3:数学与三角函数

4:统计           5:查找与引用     6:数据库

7:文本           8:逻辑           9:信息

如果你不想记住这些整数的含义,你可以直接写成:

Application.MacroOptions Macro:="dx", Category:= "财务"

那么是否可以为加载宏函数增加一个新类别呢?很简单!只需要将上面的Category参数改变一下就可以了:

Application.MacroOptions Macro:="dx", Category:= "财务扩展函数"

上句会在“插入函数”对话框中增加一个新类别“财务扩展函数”,并把dx函数放入其中。

MacroOptions方法还有其它一些参数,可以帮助我们,包括为函数添加说明,下面语句在分类的同时会为函数增加说明。

Application.MacroOptions Macro:="dx", Description:="金额小写转换为大写" & vbCr & "参数N:要转换的金额。", Category:="财务扩展函数"

让我们再次回到Open事件中,看看这3句代码:

ThisWorkbook.IsAddin = False

ThisWorkbook.IsAddin = True

ThisWorkbook.Saved = True

在加载宏文件中使用类似在无耐情况下才采用的变通代码,达到的目的仅仅是一般人并不注意的函数分类,我想我已经把你引入歧途,真的很抱歉。我该如何纠正呢?

我无意保留一个没有多大实用价值的技巧,我更希望由你说出来……

三、处理加载宏过程

加载宏的另一个重用功能就是提供扩展的 *** 作,这通常是写在模块中的Sub过程。设计加载宏过程应注意两个方面,一是代码实体,二是提供适当的接口方式以便用户可以使用这些 *** 作。

在代码实体的设计上,加载宏代码与其它VBA代码看上去也许没有太多的差别,但它要求设计者更为密切地注意加载宏的运行环境,对象成员的使用也更应规范和严谨。比如,喜欢混用ThisWorkbook和ActiveWorkbook的朋友要好好看看帮助文档中二者的差别了。

现在请在模块中粘贴下面的代码:

Sub HVCenter()

' 这段代码的含义很简单,让选定区域文字水平垂直居中

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

End With

End Sub

在接口处理上,一般有3种处理方式。

1.快捷键

为过程设置快捷键可以在另存为加载宏文件前在“工具”菜单上单击“宏”-“宏”,在“宏”对话框中,单击“选项”按钮完成。也可使用前面介绍过的MacroOptions方法设置。

Application.MacroOptions Macro:="", HasShortcutKey:=True, ShortcutKey:="A"

2.菜单

通过在系统菜单上增加菜单项可以将 *** 作提供给使用者,加载宏是对EXCEL基本功能的扩充,一般不提倡使用自定义菜单来代替系统菜单。

3.工具栏

可以使用EXCEL现有的工具栏上增加按钮也可以通过新建工具栏来完成。下面代码将前面的过程关联到新建的菜单项和工具栏上。

Private Sub Workbook_AddinInstall()

On Error Resume Next

'新建菜单

With Application.CommandBars(1).Controls.Add(Type:=msoControlPopup)

.Caption = "测试(&T)"

With .Controls.Add(Type:=msoControlButton)

.Caption = "居中"

.OnAction = "HVCenter"

End With

End With

'新建工具栏

With Application.CommandBars.Add(Name:="myCmdbar")

.Position = msoBarTop

With .Controls.Add

.FaceId = 352

.Caption = "居中"

.OnAction = "HVCenter"

End With

.Visible = True

End With

End Sub

由于工具栏和菜单生成后不会随EXCEL的关闭而消失,因此创建工具栏和菜单的代码一般应写在AddinInstall事件中,并且在加载宏卸载时随之卸载。下面代码卸载前面创建的工具栏和菜单。

Private Sub Workbook_AddinUninstall()

On Error Resume Next

Dim ctl As CommandBarControl

'卸载工具栏和菜单

Application.CommandBars("myCmdbar").Delete

For Each ctl In Application.CommandBars(1).Controls

If ctl.Caption = "测试(&T)" Then ctl.Delete

Next ctl

End Sub

四、处理加载宏事件

原则上讲,加载宏事件应对所有打开工作簿发生的事件进行处理。加载宏事件的设计相对函数和过程的设计而言通常要复杂得多,它要求设计者具有一定的类知识和良好的代码组织能力。具体设计主要应解决两方面问题,一是事件代码本身,二是将预作的“事件代码”和对象关联。我们仍通过实例,继续前面的设计来介绍。

任务:让加载宏实现当用户在活动工作簿的活动工作表选择某一区域时,状态栏显示该区域的范围。

1.设计事件代码

(1)分析要用的对象和事件

不难知道,本例需要Workbook对象的SheetSelectionChange的事件。首先使用WithEvents关键字定义一个Workbook对象。

Dim WithEvents wkb As Workbook

注意,WithEvents关键字不能在标准模块中使用,因此,代码一般写在Thisworkbook中。

(2)书写事件代码

Private Sub wkb_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Application.StatusBar = "你选择的区域:" & Replace(Target.Address, "$", "")

End Sub

2.关联对象

(1)分析需要关联的所有情况

写好了上面的代码,如何将它与活动工作簿关联呢?首先应该分析可能进行关联的时机。以本例,大体我们将需要(改变)关联,即活动工作簿发生变化的情况列示如下:

a.当新建工作簿时,关联对象为新建的工作簿

b.当新打开工作簿时,关联对象为新打开工作簿

c.当在两个工作簿之间切换时,关联对象为新切换到的工作簿

(2)完成关联代码

上面的分析知道,需要用到Application级的事件。定义Application对象,写入相应的事件,然后在Open事件中将它关联到当前的Application即可。汇合前面的代码如下:

Dim WithEvents app As Application

Dim WithEvents wkb As Workbook

Private Sub app_NewWorkbook(ByVal Wb As Workbook)

Set wkb = Wb

End Sub

Private Sub app_WorkbookOpen(ByVal Wb As Workbook)

Set wkb = Wb

End Sub

Private Sub app_WorkbookActivate(ByVal Wb As Workbook)

Set wkb = Wb

End Sub

Private Sub wkb_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Application.StatusBar = "你选择的区域:" & Replace(Target.Address, "$", "")

End Sub

Private Sub Workbook_Open()

'关联到Application

Set app = Application

End Sub

还有一个问题,上面处理的都是加载宏加载后的关联,当加载宏加载时,调用加载宏的工作簿呢?你是否认为可以在上面的Open事件中加入:

Set wkb = ActiveWorkbook

就可以了呢?答案是否定的。正确的做法是使用属性过程和Auto_Open,首先在ThisWorkbook中加入下面的属性过程:

Property Let ActiveWkb(ByVal wk As Workbook)

Set wkb = wk

End Property

然后再在模块代码中加入Auto_Open过程:

Private Sub Auto_Open()

ThisWorkbook.ActiveWkb = ActiveWorkbook

End Sub

我把这个放在最后,目的是提请你注意Open和Auto_Open的区别。

(图)

之前,在公司内部搭建了一套confluence,安装过程见我的另外一篇文章: https://www.jianshu.com/p/2f2142ce01b7

最近,公司用的人慢慢多了起来,很多人都在问一些基本使用问题,在此总结一下,也算是个人加深一下印象

Confluence是一个企业级的Wiki,可用于企业、部门、团队内部进行信息共享和协同编辑。

关键词:信息共享、协同编辑

以下几个基本概念需要了解一下:

空间是Confluence系统中的一个区仔槐域,用于存储wiki页面,并可实现对空间中的所有文档进行统一的权限管理。

通常,我们可以针对每个项目单独创建一个空间,然后将与该项目相关的文档信息放置到该空间中,并只对项目成员开设访问/编辑权限。

除了项目空间,每个成员都有一个个人空间。平时成员可以将工作总结或笔记等文档放置到自己的空间中;对于对团队有帮助的文档,就可以将文档移动至团队项目空间中。

可以理解为SVN或Git的一个库

Dashboard是Confluence系统的主页,在Dashboard界面中包含了Confluence站点中的所有空间列表,以及最近更新内容的列表。

在Confluence系统中,页面是存储和共享信息的主要方式。页面可以互相链接、连接、组织和访问,并以树状结构进行组织,放置于空间之中。

页面遵循所见即所得的编辑方式, *** 作上简单易用。更强大的地方在于,页面支持大量的内容展现形式,除了富文本文档外,还包括图表、视频、附件(可预览)、流程图、公式等等;如兄歼果还不够,还可以通过海量的第三方插件进行扩展。

在页面中可以通过@其它成员,通知相关成员查看文档。文档保存成功后,被@的成员就会收到邮件,并可根据邮件中的链接访问到该文档,然后进行评论或者协同编辑。

创建页面时除了采用空白文档,也可以选择模板。模板是在空白文档的基础上,根据特定需求添加了一些文档要素,可辅助用户更好更快地创建文档。

Confluence内置了大量的模板,可辅助用于项目工作的各个环节,包括产品需求、会议记录、决策记录、指导手册(How-to)、回顾记录、工作计划、任务报告等等。并且由于Confluence和JIRA是同一家公司的产品,在Confluence中可以和JIRA进行无缝衔接,实现对产品质量实现更好的展现。

如果对Confluence自带的模板不满意,还可以对模板进行调整,或者根据自己的需求创建其它类型的模板。

在安全性方面,Confluence具有完善和精细的权限控制,可以很好地控制用户在Wiki中创建、编辑内容和添加注释。

权限控制分3个维度,分别是团队(Group),个人(Individual Users),匿名用户(Anonymous)。

使用团队级的权限控制时,需要在Confluence服务器中对公司员工进行分组,好处在于配置比较方便,只需要对整个团队进行统一的权限配置。

但在实际项目中,经常会存在同一个项目包含多个跨团队成员的情况,这个时候就不适合采用团队权限配置方式,只能采用逐个添加成员的方式,并对各个成员分别配置权限。

另外一种情况,就是对于未登录的用户,以及项目成员以外的用户,可以开设部分权限,例如只读(View)

掌握以下信息,就可以开始使用了

新建一个项目时,首先要做的就是创建一个空间,并进行初始化配置。

创建空间的方式很简单,可以从顶部菜单进行创建:【空间/Spaces】->【创建空间/Create Space】羡戚冲;也可以从Dashboard页面的Spaces页面中进行创建。

如下图:

空间类型如下:

d出的对话框共有4个选项。

如果是个人项目,一般选【空白空间/Blank space】,可创建页面、博客;

如果只需要创建页面,则选择【文档空间/Documentation Space】;

如果要限定团队某个成员访问的空间,则选择【团队空间/Team Space】;

至于【知识库/Knowledge base】与【空白空间/Blank space】差不多。

如果需要和Jira上的项目关联,推荐选择【软件项目空间/software project space】

因此,个人用,选【空白空间/Blank space】

团队用,选【团队空间/Team Space】或【软件项目空间/software project space】。

这里选择【空白空间/Blank space】进行演示:

然后是填写空间的基本信息。所有类型的空间都有两个必填字段,空间名/Space name和空间标识符Space key(空间的ID或key,一旦确定不能修改),不同空间不能重复,但空间名是可以重复的。

个人空间可勾选“只对我可见/Visible only to me",即仅对个人可见

团队空间会多一个“团队成员Team members”字段,用于添加空间的成员。如下图:

需要说明的是,空间创建完成后,Space key字段是不能修改的,其它字段以及团队成员都可以进行修改。

配置空间权限

创建空间后,根据项目需要,可以给空间设置权限。只有空间的管理员才能对空间权限进行配置。

*** 作方式如下:首先进入空间的页面,在空间左下角中,【空间管理/Space tools】->【权限/Permissions】,进入权限管理页面。Confluence的权限控制比较完善,可以根据团队规范进行较为精细粒度的设置

新建页面或“文档”

在Confluence中文件以树状结构进行组织。

推荐的创建方式是,先进入父目录的页面,然后再点击【Create】进行创建。在创建文档页面中,可以看到新建文档的“父页面/Parent”,表示新文档创建后将位于“父页面”文件的下一个层级中。

这里说一下,confluence上有大量的模板,比较常用的是以下三种:

【空白页/Blank page】用以创建属于自己所需的文档,随心所欲的自定义;

【博文/Blog pot】可以创建从网络收藏的网页;

【文件列表/File list】创建一个文件网盘,可以上传各类文档、软件等。

这里选择空白页面创建。

在编辑时,页面遵循所见即所得的编辑方式,基本上跟在MS Word中的 *** 作类似。

Confluence也集成了许多编辑工具,可以很方便地插入图表、链接、附件、代办列表等等。如果还不满足需求,可以点击【Insert】->【Other macros】,查找更多的扩展插件。

加号处的下拉选项,提供了增强性的编辑功能。包括支持Markdown语法、支持Todo任务列表、支持多种宏等等。

【目录/Table of Contents】插入目录插入目录宏,可根据你的标题格式自动生成目录。

很多时候我们需要调整目录结构,这就涉及到需要将文档移动到别的目录层级下。

*** 作方式如下:先进入到待移动的文档页面中,点击页面右上角的【…】->【移动】,根据提示选择新的父页面

空间管理包括对空间的配置、删除、权限等等一系列的管理。在页面左下方的【空间管理/Space tools】即可进入空间管理 *** 作。

Confluence的功能非常之多,这里仅能介绍了最基本的功能。无论对于个人还是创业公司,Confluence是真正意义上的Wiki知识管理工具。现在有很多的用户使用Evernote、为知、有道作“知识管理”,恐怕大多数的情况,这类工具仅仅是扮演着收集与采集的工具,比如我现在用的Reede应用,看到好的文章就同步至Evernote,但是,我基本不会使用evernote做笔记或者撰写材料,这是因为Evernote的形态并不符合Wiki的理念。

又由于知识以各种各样的形态呈现,比如文章、图片、视频、文档、软件等等,传统的笔记类工具远远还不足以应付。

Confluence与Evernote的区别就像图书馆与迅雷。Confluence(图书馆)存放的知识在需要的时候可以应用,且以良好的结构组织;而Evernote(迅雷)只是为了收集(收藏)内容的目的而存在,即便有一天你知道evernote有你需要的知识,但你多数用搜索引擎直接搜索。

是时候试试confluence了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/8032810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存