Установка размера шрифта в форме - PullRequest
0 голосов
/ 11 июня 2019

У меня есть следующий макрос, который должен создать поле, связанное с определенным рабочим листом в рабочей книге, на каждом листе рабочей книги:

Option Explicit

Sub gndhnkl()
    Dim ws As Worksheet
    Dim sh As Shape

    For Each ws In ThisWorkbook.Worksheets
        If InStr(1, ws.Name, "Summering", vbBinaryCompare) <= 0 Then
            For Each sh In ws.Shapes
                sh.Delete
            Next sh
            Call Macro1(ws)
        End If
    Next ws
End Sub

Sub Macro1(ws As Worksheet)

    Dim venstre As Double, topp As Double, breidde As Double, høgde As Double
    Dim sh As Shape

    venstre = ws.Range("B16").Left
    topp = ws.Range("B16").Top
    breidde = 110
    høgde = 68

    Set sh = ws.Shapes.AddShape(msoShapeRoundedRectangle, venstre, topp, breidde, høgde)
    With sh.TextFrame2.TextRange
        .Characters.Text = "Til summering, person"
        .Font.Size = 13
        .ParagraphFormat.Alignment = msoAlignCenter
        .Parent.VerticalAnchor = msoAnchorMiddle
    End With
    ws.Hyperlinks.Add Anchor:=sh, Address:="", SubAddress:=Replace(Summering_person.Range("A1").Address(external:=True), "[" & ThisWorkbook.Name & "]", "", 1, -1, vbBinaryCompare)

End Sub

По большей части это работает так же, как я ожидаю, но по какой-то причине размер шрифта в добавленной форме не установлен на 13, как я ожидаю, но остается 11.

т.е. похоже, что строка .Font.Size = 13 (sh.TextFrame2.TextRange.Font.Size = 13) не выполнена.

Где здесь моя ошибка, и что мне нужно сделать, чтобы макрос установил размер шрифта для фигуры?

1 Ответ

2 голосов
/ 11 июня 2019

Вы должны изменить порядок, сначала установить размер шрифта (и любые другие свойства шрифта), прежде чем писать текст.После того, как текст установлен, становится все сложнее изменить шрифт - каждый символ TextFrame может иметь свои собственные характеристики.

  .Font.Size = 13
  .Characters.Text = "Til summering, person"

Обновление Комментарий SJR является правильным, когда используетсяTextFrame вместо TextFrame2, вы можете установить свойства шрифта для всего текста, как один раз после того, как текст был написан.

...