Свойство Application.HinstancePtr (Excel)
Возвращает дескриптор экземпляру Excel, представленному указанным объектом Application . Только для чтения, Variant.
Синтаксис
expression. HinstancePtr
выражение: переменная, представляющая объект Application.
Примечания
Это свойство возвращает правильный дескриптор как в 32-разрядной, так и в 64-разрядной версиях Excel. Она расширяет функциональные возможности свойства Hinstance объекта Application , которое правильно работает только в 32-разрядной версии Excel.
Идеальным типом данных для использования с этим свойством является тип данных LongPtr . Присвоение значения, возвращаемого этим свойством переменной LongPtr , будет работать как в 32-разрядной, так и в 64-разрядной версиях Excel. Свойство определяется как Variant по причинам внутренней реализации. Однако он всегда возвращает 32-разрядное значение в 32-разрядных системах и 64-разрядное значение в 64-разрядных системах.
Это свойство работает только начиная с Excel и требуется только в 64-разрядной версии Excel. Если необходимо написать код, который также будет работать с более ранними версиями Excel, во избежание ошибок компиляции прочитайте это свойство в директиве условной #if Win64
компиляции и используйте свойство Hinstance в директиве #else
.
Обратите внимание, что это свойство хорошо работает как в 32-разрядных, так и в 64-разрядных средах, начиная с Excel. Таким образом, если ваш код предназначен для использования только с Excel или более поздней версии, либо с 32-разрядной или 64-разрядной, он может считывать это свойство без условной компиляции.
Дополнительные сведения об использовании VBA в 64-разрядных средах см. в статье Обзор 64-разрядных Visual Basic для приложений.
Пример
В этом примере в окне сообщения отображается дескриптор экземпляра Excel для пользователя.
Sub CheckHinstance()
MsgBox Application.HinstancePtr
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.