Я пытаюсь вставить файл (любого типа) в документ Word с помощью VBA. Ниже приведен фрагмент, показывающий, как я пытаюсь это сделать. Я могу вставить файл успешно, но значок, используемый для встроенного файла, неверен. Мой обзор MSDN documentation и поисковых запросов Google заставил меня поверить, что опускание IconIndex и IconFileName подскажет VBA выбрать значок по умолчанию ... но это, похоже, не происходит (см. Рисунок ниже). Я полагаю, я должен просто пропустить шаг?Отображение значка справа при встраивании файла через VBA
Option Explicit
Sub test_macro()
' Attach File
Selection.InlineShapes.AddOLEObject _
filename:="C:\newfile.docx", _
LinkToFile:=False, _
DisplayAsIcon:=True, _
IconLabel:="This is my file"
End Sub
Результат:
Примечание: Использование Word 2007
Спасибо, однако, что подход работает только * если * вы хотите вставить файл слова. Что делать, если вы хотите внедрить PDF или Excel? Нецелесообразно создавать таблицу поиска для всех возможных типов, и это не обязательно, поскольку Windows уже должна знать, что значок идет с каждым расширением файла. Более того, когда я выполняю эту операцию вручную, Word выбирает правильный значок! :) Кажется, здесь где-то есть недостающая часть головоломки. – Aquadisco
@Aquadisco, правда и ложь. Возможно, было бы лучшее решение, но это не так сложно. Вам просто нужно найти файлы '* .ico', которые будут представлять значки для файлов другого типа. Посмотрите, это мой локальный путь к файлу PDF, который я буду использовать как параметр «IconFileName»: «C: \ Windows \ Installer \ {AC76BA86-7AD7-1033-7B44-AB0000000001} \ SC_Reader.ico». Если бы я делал это довольно часто, я бы сохранил некоторые значки в специальной папке, чтобы быстро их использовать. –
@Aquadisco, еще одна вещь - в вашем макросе вы пропустили важную часть кода, которая решает, какой значок должен быть прикреплен. Поэтому я не могу согласиться с тем, что «есть недостающая часть головоломки» по сравнению с прикреплением файлов вручную. –