|
楼主 |
发表于 2015-8-21 10:51
|
显示全部楼层
139:提的建议很好!
但第一个问题,出于精简的目的,不做提示。第二个问题,当文件搜到很多时,如果不是要找的文件,我只须按 F6 就关闭了,如果更改了文件,再关闭时,它会提问的;如果每个文件关闭时都要提问,相当麻烦!——只有在确认了某个文件是所要找的文件时,才查找关键词,并且,咱们用的文件一般不大,目视查找就可以,大的得用查找功能了。
“把文字排成自左往右的纵向例文”这个问题,我用宏试了,出来的效果是:如果一大段文字,最后做出的效果是最后一页为第一页,况且每一段(竖段)都是一个段落,有的对不齐,这样吧,我提供一下这个宏,你看看,效果不是很好。你找一篇文档作为例文,试试。我觉得要是后续再排版的话,就不整齐了。
****竖排从左往右(宏)***(运行完毕在第1页最右边打回车,在最后一页观看效果,多页显示时观看):
Sub test()
'删除段落首尾空格
Selection.WholeStory
CommandBars.FindControl(ID:=122).Execute
CommandBars.FindControl(ID:=123).Execute
'删除空行
Dim j As Paragraph
For Each j In ActiveDocument.Paragraphs
If Len(j.Range) = 1 Then j.Range.Delete
Next
'每个段落取消首行缩进,首行前加两个全角空格
For Each j In ActiveDocument.Paragraphs
j.Range.ParagraphFormat.CharacterUnitFirstLineIndent = 0 ' 取消首行缩进
j.Range.ParagraphFormat.FirstLineIndent = CentimetersToPoints(0) ' 取消首行缩进
j.Range.InsertBefore Text:=" "
Next
'一行一段!
ActiveDocument.Content.InsertAfter Text:=vbCr & " "
Selection.HomeKey Unit:=wdStory
Do
Selection.EndKey Unit:=wdLine
If Asc(Selection) = 13 Then
Selection.MoveRight Unit:=wdCharacter, Count:=1
GoTo nocacel
Else
Selection.TypeParagraph
End If
nocacel:
Loop Until Asc(Selection) = 32
ActiveDocument.Paragraphs.Last.Range.Delete
'获取倒序段落
Dim i As Long
Dim myRange As Range
Selection.WholeStory
Set myRange = Selection.Range
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
Selection.TypeParagraph
For i = myRange.Paragraphs.Count To 1 Step -1
Selection.TypeText Text:=myRange.Paragraphs(i).Range
Next i
Selection.HomeKey Unit:=wdStory
Selection.Find.Execute findtext:="^p^p^p^p", Forward:=True
Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
'删除空行
For Each j In ActiveDocument.Paragraphs
If Len(j.Range) = 1 Then j.Range.Delete
Next
Selection.WholeStory
Selection.Orientation = wdTextOrientationVerticalFarEast
Selection.HomeKey Unit:=wdStory
Selection.TypeParagraph
End Sub |
|