一、问题描述
在word2003中可以使用鼠标框选多个图形,可是在word2010中却只能使用ctrl+鼠标一个个点选,非常不便。
如果要实现框选,需要先插入一个画布,再在画布中绘制图形。已经绘制的图形可以粘贴到画布中。
插入画布操作:插入选项卡-->插图命令组-->形状-->新建绘图画布。绘制的画布可以拖动边框调整大小,还可以右键-->设置布局选项-->文字环绕-->浮于文字之上,这样可以使画布突破页边距的设置,甚至放大到页边距之外使画布看不到,感觉比较舒服些。
框选工具在:开始选项卡-->编辑命令组-->选择-->选择对象。
在画布中绘制图形可以框选了,但是发现选中了多个图形以后却不能使用对齐命令(格式选项卡-->排列命令组-->对齐下的:左对齐、右对齐……等等都是灰色的) 。
而不在画布中绘制的图形,却能使用对齐命令。
怎样才能在word2010中实现既能框选又能对齐呢,鱼与熊掌难道不能兼得吗?
二、解决方法
方法一:在PPT2010中绘制图形,两个功能都是可用的,不用画布直接绘制,完后再复制到word2010中。先设置下PPT的页面与word一致(如A4):设置选项卡-->页面设置-->幻灯片大小,在下拉列表中选择,这样可以直观地看到在word中的大小,不会复制后发现太大或太小。
方法二:将文字另存为word97-2003格式,再打开,此时两个功能都可用,也是不用画布直接绘制即可。缺点是如果word2010文档中有其它2003不支持的格式,就会导致文档格式失真。
方法三:使用VBA代码实现对齐功能(仍然需要在画布中才能框选)。这是高人的代码:
Private Sub AlignHorizontal(ARate As Single)
Dim Min, Max, i As Integer
Min = 32768
Max = -32768
For Each AShape In Selection.ChildShapeRange
If Min > AShape.Left Then
Min = AShape.Left
End If
i = AShape.Left + AShape.Width / 20
If Max < i Then
Max = i
End If
Next AShape
For Each AShape In Selection.ChildShapeRange
AShape.Left = Min * (1 - ARate) + Max * ARate - AShape.Width / 20 * ARate
Next AShape
End Sub
Private Sub AlignVertical(ARate As Single)
Dim Min, Max, i As Integer
Min = 32768
Max = -32768
For Each AShape In Selection.ChildShapeRange
If Min > AShape.Top Then
Min = AShape.Top
End If
i = AShape.Top + AShape.Height / 20
If Max < i Then
Max = i
End If
Next AShape
For Each AShape In Selection.ChildShapeRange
AShape.Top = Min * (1 - ARate) + Max * ARate - AShape.Height / 20 * ARate
Next AShape
End Sub
Private Sub AlignShape(AHorizontal As Boolean, ARate As Single)
If Selection.ChildShapeRange.Count = 0 Then
Exit Sub
End If
If AHorizontal Then
AlignHorizontal (ARate)
Else
AlignVertical (ARate)
End If
End Sub
Sub AlignHorizontalLeft()
AlignShape True, 0
End Sub
Sub AlignHorizontalCenter()
AlignShape True, 0.5
End Sub
Sub AlignHorizontalRight()
AlignShape True, 1
End Sub
Sub AlignVerticalTop()
AlignShape False, 0
End Sub
Sub AlignVerticalMiddle()
AlignShape False, 0.5
End Sub
Sub AlignVerticalBottom()
AlignShape False, 1
End Sub
需要将以上代码添加到一个工具按钮上,方便调用。方法如下:
(1)文件菜单-->选项-->自定义功能区-->勾选右侧列表框中的“开发工具”,确定。此时多出一“开发工具”选项卡。(在功能区上点右键也可出现“自定义功能区”,下同)
(2)开发工具选项卡-->代码命令组-->Visual Basic(就是左边第一个按钮),在 Normal上右键,依次选插入-模块,然后将上面代码复制粘贴进来。点击工具栏上磁盘按钮保存。关闭开发工具。
(3)添加一个新建选项卡,以便将代码添加到此按钮。
(当然也可以添加到原有选项卡上,如格式选项卡,方法类似。但我不想影响原有选项卡,且便于找到命令就单独为其新建了一个选项卡)。
文件菜单-->选项-->自定义功能区-->在右侧列表框下点“新建选项卡”按钮,此时列表中多出一个“新建选项卡(自定义)”,其下有一个"新建组(自定义)",分别右键-->重命名,将选项卡命名为"图形对齐",将组命名为"对齐"(名称随你喜欢自定)。
(4)在“从下列位置选择命令”下拉列表框中选择“宏”,此时列出6个宏(Normal.模块1.Align...开头的6个),在右侧列表框中选择刚新建的"对齐"命令组。依次选中6个宏,点“添加”按钮,添加到“对齐”组下面。在刚添加的命令上依次右键-->重命名,其中:AlignVerticalBottom--底端对齐,AlignVerticalMiddle--上下居中,AlignVerticalTop--顶端对齐,AlignHorizontalRight--右对齐,AlignHorizonCenter--左右居中,AlignHorizontalLeft--左对齐。确定退出。
完成。
三、后记
方法三较好地解决了对齐的问题,但是它没有实现平均分布的功能,这不能不说是一大遗憾。
另外,Word2010中貌似没有图形布尔运算的功能,在自定义功能区对话框中的命令里没找到,不知是真没有还是我眼拙没找到。而图形运算功能在PPT2010中是有的。
如果这两个问题解决了,那WORD2010的图形功能就算完美了吧。
原文出处见http://www.docin.com/p-690220754.html,以上是结合我的实践重新整理的。