Основы офисного программирования и язык VBA


Пример 6.5


Public Sub WorkWithUniFunc()

Dim res As Long

Dim Capt As String 'Заголовок

'Динамический массив байтов для передачи строки заголовка

Dim HandleW As Long 'Описатель окна

'Поиск окна по заголовку

Capt = "Document1 - Microsoft Word"

HandleW = FindWindowA(vbNullString, Capt)

If HandleW > 0 Then 'OK

Debug.Print HandleW

Else: MsgBox ("FindWindowA не может найти окно с заголовком" & vbCrLf & Capt)

End If

'Попытки использовать для поиска Unicode функцию

'FindWindowW не увенчались успехом

' ReDim ArCapt(0 To 2 * VBA.Len(Capt)) As Byte

' ArCapt = Capt & vbNullChar

' Debug.Print ArCapt

' HandleW = FindWindowW(0&, ArCapt(0))

' If HandleW > 0 Then 'OK

' Debug.Print HandleW

' Else: MsgBox ("Не могу вызвать UniCode FindWindowW")

' End If

'Получить заголовок окна

ArCapt = VBA.String$(128, vbNullChar)

res = GetWindowText(HandleW, ArCapt(0), 128)

If res > 0 Then 'OK

Debug.Print ArCapt

Else: MsgBox ("не получен заголовок окна")

End If

'Изменить заголовок окна

Capt = "NewDoc"

ArCapt = Capt & vbNullChar

res = SetWindowText(HandleW, ArCapt(0))

'Повторно получить заголовок окна

ArCapt = VBA.String$(128, vbNullChar)

res = GetWindowText(HandleW, ArCapt(0), 128)

If res > 0 Then 'OK

Debug.Print ArCapt

Else: MsgBox ("не получен заголовок окна")

End If

End Sub




Начало  Назад  Вперед