gpt4 book ai didi

vba - 将 "Align at equals"放入宏中

转载 作者:行者123 更新时间:2023-12-04 10:07:53 25 4
gpt4 key购买 nike

我正在研究一个 Word 宏来简化我的大学数学和统计类(class)作业。基本上,选择一组方程式并运行它会改变字体大小、行高并以我希望所有数学/方程式部分通用的方式格式化段落。很棒,但是我仍然需要“手动”做一点,可以这么说,就是右键单击并选择“对齐等于”。

现在我在这里而不是在 super 用户上问这个问题的原因是我认为我已经在“录制宏”阶段用尽了所有方法。我发现了如何在不右键单击的情况下访问右键菜单,并在记录期间访问了“对齐等于”选项。没有任何记录。

说实话,我更喜欢编写代码,因为它给了我更多的控制权。所以,我会在这里发布我的代码,如果有人知道我需要添加哪一行代码来复制“align at equals”命令,我将非常感激。

Sub Equationiser()
'

' Equationiser Macro

'

'
With Selection.ParagraphFormat
.SpaceBefore = 12
.SpaceAfter = 12
.LineSpacingRule = wdLineSpace1pt5
End With
Selection.Font.Size = 20
End Sub

因此,理想情况下,就在“With Selection.ParagraphFormat”部分之前,会有某种“AlignAtEquals”命令或任何需要的命令,这样,在一个按键上,我就可以对齐所有等号,将行高设置为 1.5 ,在段落前后放置一个 12 磅的空间,并将字体大小更改为 20。

我的绝对理想也是以编程方式选择同一 block 中的所有方程框,因为“等号对齐”对于何时执行是出了名的挑剔和挑剔。这也可能意味着可能需要尝试和捕获,具体取决于尝试运行“在等于处对齐”时它通常不能从右键单击菜单中获得,这将不会执行任何操作或导致错误。

对这两个实现的任何帮助将不胜感激,但我很乐意满足于第一个。

最佳答案

我已经建立了一个解决方案,可以满足您的需求,基于:

  • 查看等式以找到 equal -符号。
  • 获取 equal 的位置-签到
  • 使用该位置设置 OMath 对象的 AlignPoint 属性
    那是你的方程式

  • Use this MSDN reference if you want to explore more
    Sub Equationiser()
    '

    ' Equationiser Macro

    '

    '

    Dim equationCounter As Long, charLoc As Long, FormattedTextLoc As Long

    With Selection
    For equationCounter = 1 To .OMaths.Count:
    FormattedTextLoc = 0
    For charLoc = 1 To Len(.OMaths(equationCounter).Range.FormattedText):
    FormattedTextLoc = FormattedTextLoc + Len(.OMaths(equationCounter).Range.FormattedText.Characters(charLoc))
    If .OMaths(equationCounter).Range.FormattedText.Characters(charLoc) = "=" Then
    .OMaths(equationCounter).AlignPoint = (FormattedTextLoc - 1)
    Exit For
    End If
    Next charLoc
    Next equationCounter
    End With


    With Selection.ParagraphFormat
    .SpaceBefore = 12
    .SpaceAfter = 12
    .LineSpacingRule = wdLineSpace1pt5
    End With
    Selection.Font.Size = 20
    End Sub

    我已经做了一些简短的测试,从我可以看到的内容中应该能够管理几个代码块,即,在选择2个代码块时,它将对第一个 block 中的所有方程进行对齐,然后对Align-at-at-at-at-等于第二个 block 中的所有方程(两个 block 不与每个 oter 对齐)- 这是您对请求的期望结果吗:我的绝对理想也是以编程方式选择同一 block 中的所有方程框,因为“对齐等于”对于何时执行是出了名的挑剔和挑剔。

    关于vba - 将 "Align at equals"放入宏中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478313/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com