Функция _ExcelBookAttach

         Описание функции


_ExcelBookAttach

Возвращает существующий экземпляр объекта открытой рабочей книги Excel (ссылку на COM объект Excel.Application), основываясь на поиске по заданной искомой строке и режиму поиска.

#include <Excel.au3>
_ExcelBookAttach($s_string [, $s_mode = "FilePath"])

Параметры

$s_string Искомая строка поиска
$s_mode [необязательный] Определяет режим поиска:
FileName - Имя открытой книги Excel(н/п "myworkbook.xls")
FilePath - Полный путь к открытой книге Excel(н/п "C:\documents\myworkbook.xls")
Title - Заголовок открытого окна Excel
Внимание!!! - не рекомендуется, так как зависит от множества условностей:
1. От режима в котором Excel открывает книги:
а) "в новом окне" или "в новой вкладке" (MS Office 2003)
б) параметр "Отображать каждое окно на панели задач" (MS Office 2007)
2. Если книги открываются в теле Excel, то от режима в котором окно книги отображается в теле Excel:
"развернутый" - Заголовок окна: "имя активной книги" & " - Microsoft Excel"
"свернутый" и "в окне" - Заголовок окна: "Microsoft Excel"

Возвращаемое значение

Успех:Возвращает существующий экземпляр объекта открытой рабочей книги Excel (ссылку на COM объект Excel.Application.Workbook)
Ошибка:Возвращает 0, Устанавливает значение флага @error = 1

Примечания

Аналогичный эффект можно получить воспользовавшись стандартной функцией ObjGet().

См. также

_ExcelBookNew, _ExcelBookOpen

Пример

; **********************************************************************************
; Пример 1 - Возвращает существующий экземпляр объекта открытой рабочей книги Excel.
; **********************************************************************************
#include <Excel.au3>

; Для того чтобы продемонстрировать работу функции  _ExcelBookAttach необходима существующая рабочая книга,  
; создадим её и сохраним в директории временных файлов...

$TestBook = _ExcelBookNew(0) ; Создаем новую рабочую книгу Excel, не отображая её на экране
_ExcelBookSaveAs($TestBook, @TempDir & "\Test", "xls", 0, 1) ; Сохраняем книгу в директории временных файлов с именем "Test.xls"
_ExcelBookClose($TestBook)

$sFilePath = @TempDir & "\Test.xls" ; абсолютная ссылка на "Test.xls"

_ExcelBookOpen($sFilePath) ; Открываем "Test.xls", не присваивая её объект переменной.
$oExcel = _ExcelBookAttach($sFilePath) ; Используем _ExcelBookAttach с опциональным параметром $s_mode = "по умолчанию" (FilePath)
_ExcelWriteCell($oExcel, "Если вы можете прочитать это - вы преуспели", 1, 1) ; Запись в ячейку книги, объект которой мы получили при помощи в $oExcel

MsgBox(4096, "_ExcelBookAttach | Пример 1", "Демонстрация завершена, нажмите ОК")
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу