【问题标题】:Publisher VBA Vertical Text Alignment property not applyingPublisher VBA 垂直文本对齐属性不适用
【发布时间】:2017-03-29 22:51:22
【问题描述】:

我正在尝试创建一个表格并将文本垂直居中。创建表格时,我用文本填充单元格并应用对齐方式:

Dim pg As Page
Dim tbl As Shape

Set pg = ActiveDocument.ActiveView.ActivePage

Set tbl = pg.Shapes.AddTable(1, 1, InchesToPoints(3), InchesToPoints(5), InchesToPoints(2), InchesToPoints(1))

With tbl.Table.Rows(1).Cells(1)
    .TextRange.Text = "Hello, World!"
    .VerticalTextAlignment = pbVerticalTextAlignmentCenter
End With

但是,文本没有正确垂直对齐。当我查看“格式表”下的“单元格属性”选项卡时,我看到它已经设置为“中间”垂直对齐,但只有在我点击“确定”后才会应用这个(如果我点击取消,没有任何变化)。

在应用对齐之前或之后更改文本都没有关系。任何人对为什么会发生这种情况有任何想法?

【问题讨论】:

  • 您是否正在寻找比“看起来像一个错误”更有洞察力的东西? ;)
  • 你需要先想办法获得正确的 Hwnd(.ActiveWindow 可以参考 VBE 编辑器),但是你可以使用 SetForegroundWindow 和 SendKeys "%JL1", True

标签: vba ms-publisher


【解决方案1】:

您似乎发现了一个错误。这是一种解决方法的尝试..

#If Win64 Then
    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds as Long) 'For 32 Bit Systems
#End If

Sub Centralize(oCellRange As CellRange)
    oCellRange.Select
    Sleep 500
    Application.ActiveDocument.ActiveWindow.Activate
    SendKeys "%JL1", True
End Sub

Sub Test()
    Dim oCellRange As CellRange
    Set oCellRange = Application.ActiveDocument.Pages(1).Shapes(1).Table.Cells(1, 1, 2, 2)
    Call Centralize(oCellRange)
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-25
    • 2019-02-09
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    相关资源
    最近更新 更多