Application.Caption ведет себя по-разному в зависимости от того, устанавливаете ли вы или возвращаете свойство.
Например, следующий Sub:
Sub SetCap()
With Application
Debug.Print .Caption ' Returns the default: something like "Microsoft Excel - Book1"
.Caption = "MyCaption" ' Set the .Caption property to a custom string
.Windows(1).Caption = "MyWindow" ' Also customise the Window caption
Debug.Print .Caption ' This still returns "MyCaption - MyWindow"
End With
End Sub
Я понимаю, что заголовок приложения изаголовок окна - это две разные вещи, и по умолчанию они будут отображаться вместе в заголовке приложения, разделенные знаком «-».
Вы можете назначить любую строку, которая вам нравится, в Application.Caption.Любопытно, однако, что когда возвращает Application.Caption, вместо того, чтобы возвращать только что заданную вами строку, текст будет включать разделитель и заголовок окна.
Очевидно, что вы можете разделить строку на «-» и вернуть первую часть:
Dim Arr As Variant
Arr = split(Application.Caption, “ - ”)
Debug.Print Arr(0)
... однако это не удастся, если фактический заголовок содержит такую строку.Например, если вы сделали:
Application.Caption = “First Part – Second Part”
... тогда разделение, как указано выше, исключило бы вторую часть.
Кто-нибудь знает, почему это поведение присутствует?И есть ли способ вернуть только фактическое Application.Caption, не включая разделитель и заголовок Window?