В Office 365 Microsoft представила новое свойство для Shapes / InlineShapes (рисунки): Decorative
Я могу манипулировать им, используя VBA
, как показано здесь, но не , используя VSTO
, что мне действительно нужно.
Тип значения - Microsoft.Office.Core.MsoTriState
, и если установлено значение msoTrue, оно включает функцию на изображении.
Мне удалось легко переключить эту функцию с помощью VBA
, как показано здесь (чтобы попробовать, просто вставьте встроенное изображение в пустой документ в Microsoft Word 365
)
Sub ToggleDecorativePic()
Dim pic As InlineShape
Set pic = ActiveDocument.InlineShapes(1)
pic.Decorative = Not pic.Decorative
End Sub
Это переключит свойство Декоративность первого InLineShape в активном документе.
Но вот актуальная проблема:
Мне нужно сделать это с VSTO
(C#
или VB.NET
), но свойство .Decorative
недоступно в Intellisense, и даже если я попытаюсь принудительно вызвать его, введя объект InlineShape
в Dynamic
, он просто падает при выполнении кода.
Я использую этот пакет Office Interop nuGet для взаимодействия с Word:
Bundle.Microsoft.Office.Interop
версия 15.0.4569
от October 23rd 2018
, поэтому она должна быть актуальной.
Пакет содержит ресурсы Interop для Microsoft Excel, Outlook, PowerPoint и Word .
Я также пытался использовать Microsoft.Office.Interop.Word
, но ему около двух лет, так что, очевидно, он также не содержит этой новой функции.
Я надеюсь, что кто-то может помочь мне в правильном направлении.
С новыми законами ЕС, касающимися доступных документов, это критическая функция при создании документов PDF с использованием Microsoft Word
.
Альтернативно: возможно ли динамически выполнить это как VBA
как-нибудь, начиная с VSTO
, без создания макросов в документе и т. Д.? Я предполагаю, что нет, по крайней мере, без включения доверия к объектной модели, что просто неосуществимо: - /