Я получил то же самое для работы с FireFox, используя другую технику.В моем случае Excel генерирует DOT для GraphViz, который генерирует .svg для FireFox.
Техника для ссылок довольно уродлива, так как требует много маленьких файлов, но работает очень быстро.Вам нужно выбрать новый тип файла или перехватить существующий редко используемый тип файла, например .xyz.Вы пишете файл для каждого отдельного узла или ребра в SVG, который вы хотите вернуться в другую ячейку Excel.Содержимое файла хранит имя файла (рабочей книги), рабочий лист и ссылку на ячейку.Я просто ставлю каждого на свою линию.Вы создаете один VBScript (. VBS) в виде отдельного файла сценария, это будет ваше приложение.Этот vbscript принимает один параметр, который является именем файла, и что он делает, это открывает файл, читает имя рабочей книги и имя рабочего листа, а также ссылку на ячейку в нем, чтобы отправлять команды в excel для вызова этой книги, рабочего листа и ячейки.,Затем вам нужно будет связать ваше приложение vbscript с типом файла (например, .xyz) в FireFox.Используйте Инструменты-> Параметры-> Приложения.Это может быть сложно, потому что вам нужно ввести имя файла VBS вместо просмотра его (вы можете перейти к папке, а затем переключиться на ввод)!Ссылки узла и края могут быть переданы через .svg (в моем случае через DOT через тег URL);ссылки в svg должны указывать на соответствующий локальный сгенерированный файл (например, один из файлов .xyz), используя файл: /// form.
Затем, когда вы нажимаете на ссылку в .svg, FireFox будетзапустить локальный vbscript как приложение с именем файла в качестве параметра.Vbscript считывает содержимое файла, находит Excel и отправляет ему команды в нужное место.После всего этого скрипт может вывести Excel на передний план.
Этот фрагмент vbscript получит аргумент командной строки:
arg = Wscript.Arguments (0)
Этот фрагмент vbs найдет рабочую копию Excel:
Set objExcel = GetObject (, "Excel.Application")
ИспользованиеВот такие команды для чтения файла:
Установить objFSO = CreateObject ("Scripting.FileSystemObject")
wkbName = objFSO.ReadLine
wksName = objFSO.ReadLine
Используйте следующие команды для отправки сообщений в Excel:
objExcel.Visible = True
wkb = objExcel.Workbooks (wkbName)
wkb.Activate
wks= wkb.Worksheets (wksName)
wks.Activate
wks.Rows (rowNum). Выберите
Этот фрагмент выведет Excel на передний план (проверено на win 7):
set objWsh = CreateObject ("Wscript.Shell")
objWsh.AppActivate objExcel.Name
(странно Wscript.Shell.AppActivate objExcel.Name
нет!)