|
1、请不要叫我大神,我的技术等级是初级,我只是个vba的痴迷者,大家以朋友相称。如你能高抬我,我叫我老师吧。
2、以我目前的水平,我知道只有word中有“首行缩进”(或段首缩进)这个名词,excel和ppt均没有,也许是我孤陋寡闻。
3、既然ppt中没有“段首缩进”(暂时这么认为吧,或许这个名称比较恰当),那我们又想“段首缩进”,难道就没有方法了吗?
4,、方法是人想出来的,我们可以模仿word的这个功能,我对word vba接触较少,也是看了你的要求后,现学现卖的。
段首缩进,就是光标所在的行的段首空2个字符,不知这样的理解是否正确?word中是这样的:
- Sub 段首缩进2字符()
- With Selection.ParagraphFormat
- Selection.ParagraphFormat.CharacterUnitFirstLineIndent = 2 '设置段首缩进2字符
- End With
- End Sub
- Sub 首行缩进2字符()
- 'WORD文档中的第三段落实现首行缩进2字符
- Dim MyParagraph As Range
- Set MyParagraph = ActiveDocument.Range(ActiveDocument.Paragraphs(3).Range.Start, ActiveDocument.Paragraphs(3).Range.End)
- If (MyParagraph.ParagraphFormat.CharacterUnitFirstLineIndent = 2) Then
- MsgBox "首行已经缩进"
- Else
- MsgBox "首行未缩进"
- MyParagraph.ParagraphFormat.CharacterUnitFirstLineIndent = 2
- End IfEnd Sub
复制代码
步骤:
①选择需要的文本框
Set shp = ActiveWindow.Selection.ShapeRange(1)
②判断文本框段首字符,这要根据具体情况,这儿最复杂
str3 = shp.TextFrame.TextRange.Characters '
If LTrim(Left(str3, 1)) > 0 And LTrim(Left(str3, 1)) < 64
③如果段首是汉字,则空4个字符,如果是数字(或英文),则空2个字符。
If Asc(Left(str3, 1)) < 0 Then '中文
不好意思,我最近较忙,给你两个程序,你自己修改,或模仿,最主要是判断
- Sub 文本框首个字符判断() '
- Set shp = ActiveWindow.Selection.ShapeRange(1) '选择的文本框
- str1 = Len(shp.TextFrame.TextRange.Characters) '字符串长度
- str2 = Len(LTrim(shp.TextFrame.TextRange.Characters)) '字符串去掉空格后的长度
- str3 = shp.TextFrame.TextRange.Characters '
-
- If Asc(Left(str3, 1)) < 0 Then '中文
- MsgBox "第1个字符是中文"
- End If
-
- If IsNumeric(Left(str3, 1)) = True Then '数字
- MsgBox "第1个字符是数字"
- End If
-
- If Asc(Left(str3, 1)) >= 65 And Asc(Left(str3, 1)) <= 122 Then '英文
- MsgBox "第1个字符是英文"
- End If
-
- If LTrim(Left(str3, 1)) > 0 And LTrim(Left(str3, 1)) < 64 Then
- MsgBox "第1个字符是空格"
- MsgBox "共有" & str1 - str2 & "个空格"
- End IfEnd Sub
复制代码
- Sub 段首缩进()
- Set shp = ActiveWindow.Selection.ShapeRange(1) '选择的文本框
- str1 = Len(shp.TextFrame.TextRange.Characters) '字符串长度
- str2 = Len(LTrim(shp.TextFrame.TextRange.Characters)) '字符串去掉空格后的长度
- str3 = shp.TextFrame.TextRange.Characters '
-
- If str1 - str2 = 0 Then '判断段首是否有空格
- With shp.TextFrame.TextRange
- str4 = shp.TextFrame.TextRange.Characters(Start:=1, Length:=0) '光标放在字符串第1个字符前
- .Text = " " & str3 '段首添加2个空格
- End With
- End If
- End Sub
复制代码
不知道能否帮到你,到此为止吧 |
|