Word application visible true

В этой статье мы рассмотрим свойства объекта Word Application, их довольно много, и все можно разделить на две части:

  • Свойства, которые позволят получить или задать параметры приложения Word
  • Свойства, которые позволяют получить доступ к остальным объектам и коллекциям

С практической стороны свойства объекта Application первой группы будут использоваться в малой части, так, нам в основном нужно сделать приложение видимым, определить, включены ли функциональные кнопки CapsLock и NumLock, задать имя пользователя или его электронный адрес и так далее. Все остальные свойства вам понадобятся только для общего развития.

Наибольший интерес представляют свойства объекта Application второй группы, так как тут мы явно видим, ссылку на какой объект или коллекцию можно создать, не прибегая к формированию нового документа.

Тут я рассмотрю только свойства первой группы, остальные я описал в этой статье. Примеров как таких я тоже не рассматривал (ни в VBA ни в Windows Script Host), практика начнется после того, как будет изучена еще коллекция Documents и объект Document, так как без них, просто нет смысла двигаться дальше.

Свойства объекта Application – первая категория

ActivePrinter — Возвращает или задает имя активного принтера. Например, у меня свойство выводит значение «doPDF v7 on DOP7:». Пример задания активного принтера на заданном порте:

ActivePrinter = «HP LaserJet 4 local on LPT1:»

AutomationSecurity – Свойство позволяет получить или задать уровень безопасности при открытии документа. Значения константы MsoAutomationSecurity:

  • msoAutomationSecurityLow – 1 – включить макросы
  • msoAutomationSecurityByUI -2  – значение, настроенное по умолчанию в самом документе
  • msoAutomationSecurityForceDisable — 3 – отключить макросы

BackgroundPrintingStatus — Возвращает количество заданий в очереди на печать в фоновом режиме, объект Application

BackgroundSavingStatus — Возвращает количество файлов в очереди на сохранение в фоновом режиме.

BrowseExtraFileTypes — Установите это свойство в «text/html», чтобы гиперссылки открывались в Microsoft Word (вместо интернет-браузера по умолчанию).

Build — Возвращает версию и номер сборки приложения Word.

CapsLock, NumLock – свойства позволяют определить, включены ли (True) заданные режимы или нет (False).

Caption — Возвращает или задает текст, отображаемый в строке заголовка окна приложения.

CheckLanguage – Значение true, если Microsoft Word автоматически определяет язык, который вы используете при вводе текста. Чтение и запись.

DefaultSaveFormat — Возвращает или устанавливает формат сохранения документов по умолчанию, который будет отображаться в поле Тип файла в диалоговом окне Сохранить как, объект Application. Значения:

  • Word документ — «»
  • Шаблон документа — «Dot»
  • Простой текстовый файл — » 8Text»
  • Только текст с разрывами строк — » 8CRText»
  • MS-DOS текст — «Text»
  • MS-DOS текст с разрывами строк — «CRText»
  • Rich Text Format — «Rtf»
  • Юникод — «Unicode»

DefaultTableSeparator — Возвращает или устанавливает один символ, используемый для разделения текста на ячейки, когда текст преобразуется в таблицу.

DisplayAlerts – Свойство возвращает или устанавливает способ обработки ошибок и диалоговых окон во время работы макросов или приложений VBA. Значения константы WdAlertLevel:

  • wdAlertsAll – -1 — отображать все предупреждения и диалоговые окна
  • wdAlertsMessageBox – -2 — отображать только диалоговые окна
  • wdAlertsnone – 0 — отключить отображение полностью

DisplayAutoCompleteTips – Включение (true) или отключение (false) подсказки для авто-завершения текста. Объект Application

DisplayDocumentInformationPanel – Включить (True) или отключить (False) панель свойств документа.

DisplayRecentFiles – Значение True, если имена последних использованных файлов отображаются в меню Файл. Чтение и запись.

DisplayScreenTips — Значение True, если комментарии, сноски, примечания и ссылки отображаются в виде подсказок. Чтение и запись.

DisplayScrollBars – Значение True, если Word отображает полосу прокрутки по меньшей мере в одном окне документа. False — если полосы прокрутки скрыты в любом окне. Чтение и запись.

EmailTemplate — Возвращает или задает текстовую строку, представляющую шаблон документа для использования при отправке электронного сообщения. Объект Application

EnableCancelKey — Возвращает или задает способ завершения работы макроса. Значения константы WdEnableCancelKey:

  • wdCancelDisabled — 0 — Комбинация Ctrl + Break не прерывает работу макроса.
  • wdCancelInterrupt — 1 – Макрос прерывается комбинацией Ctrl + Break.

FeatureInstall — Возвращает или задает способ обработки при вызове методов и свойств компонентов, которые возможно еще не установлены. Значения константы MsoFeatureInstall:

  • msoFeatureInstallNone — 0 — Создает общую ошибку автоматизации во время выполнения, когда вызывается удаленный компонент.
  • msoFeatureInstallOnDemand — 1 – Отправляется запрос пользователю установить новые компоненты.
  • msoFeatureInstallOnDemandWithUI — 2 — Отображает индикатор выполнения во время установки; не предложит пользователю установить новые компоненты.

FileValidation — Возвращает или задает режим проверки файлов перед их открытием. Значение константы MsoFileValidationMode:

  • msoFileValidationDefault — 0 — Проверять файл (по умолчанию).
  • msoFileValidationSkip — 1 — Не проверять файл.

FocusInMailHeader – Значение true, если курсор находится в поле электронного письма. Только чтение.

Height и Width – Свойства объекта Application возвращает или задают высоту (ширину) окна активного документа.

International(index) – Получение информации о времени, настройках даты, версии Windows и так далее. Параметр index содержит значения константы WdInternationalIndex:

  • wdListSeparator — 17 – Возвращает разделители списков.
  • wdDecimalSeparator — 18 — Возвращает десятичный разделитель (например, “.”).
  • wdThousandsSeparator — 19 — Возвращает разделитель тысяч.
  • wdCurrencyCode — 20 — Возвращает символ валюты (например, “$”).
  • wd24HourClock — 21 — Возвращает True, если вы используете 24 — часовое время, False, если вы используете 12 — часовое время.
  • wdInternationalAM — 22 — Возвращает строку, используемую для обозначения утреннего времени.
  • wdInternationalPM — 23 — Возвращает строку, используемую для обозначения послеобеденного и вечернего времени.
  • wdTimeSeparator — 24 — Возвращает разделитель времени (например, “:”).
  • wdDateSeparator — 25 — Возвращает разделитель даты.
  • wdProductLanguageID — 26 — Возвращает языковую версию Word.

IsObjectValid(Object) — True, если указанная переменная (Object), которая ссылается на объект, действует. Только чтение.

Language – Возвращает язык выбранный для пользовательского интерфейса,  значения константы MsoLanguageID.

Left и  Top – Свойства объекта Application возвращают или устанавливают горизонтальное (вертикальное) положение активного документа.

MailSystem – Возвращает тип почтовой системы, установленной на компьютере. Значение константы WdMailSystem:

  • wdNoMailSystem — 0 — Нет почтовой системы.
  • wdMAPI — 1 — Стандартный интерфейс программирования приложений передачи сообщений (MAPI).
  • wdPowerTalk — 2 — PowerTalk почтовая система.
  • wdMAPIandPowerTalk — 3 – Установлены MAPI и PowerTalk.

MAPIAvailable — True, если установлен MAPI. Только чтение.

MathCoprocessorAvailable — True, если установлен математический сопроцессор и доступен для Microsoft Word. Только чтение.

MouseAvailable — True, если доступна мышь.Только чтение.

Name — Возвращает имя приложения.

Path — Возвращает путь к программный файлам Word.

PathSeparator — Возвращает символ, используемый для разделения имен папок (обратная косая черта  “”). Объект Application

PrintPreview – Включить (True) или отключить (False) предварительный просмотр документа.

ScreenUpdating — True, если обновление экрана включено. Чтение и запись.

ShowStartupDialog — True, чтобы отобразить область задач при запуске Microsoft Word. Чтение и запись.

ShowVisualBasicEditor — True, если отображается окно редактор Visual Basic. Чтение и запись.

SpecialMode — True, если Microsoft Word находится в специальном режиме (например, режим CopyText или режиме MoveText). Только чтение.

StartupPath — Возвращает или устанавливает полный путь к папке автозагрузки.

UsableHeight и UsableWidth – Свойства объекта Application вернут максимальную высоту (ширину) окна в пунктах, которую можно установить.

UserAddress — Возвращает или устанавливает почтовый адрес пользователя.

UserControl — True, если документ или приложение было создано или открыто пользователем. Только чтение

UserInitials — Возвращает или устанавливает инициалы пользователя, которые Microsoft Word использует для построения знака комментария. Чтение и запись.

UserName — Возвращает или устанавливает имя пользователя, которое используется на конвертах и в свойстве «Автор документа».

Version — Возвращает версию Microsoft Word. Только чтение

Visible — True, если приложение Word видимо. Чтение и запись. Объект Application

WindowState — Возвращает или устанавливает состояние указанного окна документа или окна задач. Значение константы WdWindowState.

  • wdWindowStateMaximize — 1 — Максимальное.
  • wdWindowStateMinimize — 2 – Сведено к минимуму.
  • wdWindowStateNormal — 0 — Нормальное состояние.

Создание нового экземпляра приложения Word из кода VBA Excel или подключение к открытому для работы с документами. Функции CreateObject и GetObject.

Работа с Word из кода VBA Excel
Часть 1. Управление приложением Word
[Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5] [Часть 6]

Создание объекта Word.Application

Экземпляр приложения Word необходим для того, чтобы с его помощью создавать новые документы или открывать существующие для редактирования из кода VBA Excel.

Создать новый экземпляр объекта Word.Application можно при помощи раннего или позднего связывания, используя при позднем связывании функцию CreateObject. Подключиться к открытому экземпляру приложения Word можно только при помощи позднего связывания, используя функцию GetObject.

Раннее связывание приложения Word

Создание нового экземпляра Word.Application и присвоение ссылки на него переменной myWord:

‘Создание экземпляра приложения Word

‘с ранней привязкой одной строкой

Dim myWord As New Word.Application

‘Создание экземпляра приложения Word

‘с ранней привязкой двумя строками

Dim myWord As Word.Application

Set myWord = New Word.Application

Для раннего связывания переменной с объектом Word.Application необходимо подключить в редакторе VBA Excel ссылку на библиотеку Microsoft Word Object Library, если она не подключена. Подключается ссылка в окне «References VBAproject», перейти в которое можно через главное меню редактора: Tools–>References…

Раннее связывание позволяет при написании кода использовать лист подсказок для выбора и вставки свойств и методов привязанных объектов (Auto List Members). Если проект VBA Excel создается на заказ, то, после его завершения, раннее связывание следует заменить на позднее, так как на компьютере пользователя может не оказаться нужной библиотеки, и код работать не будет.

Позднее связывание приложения Word

Создание нового экземпляра Word.Application с помощью функции CreateObject и присвоение ссылки на него переменной myWord:

Dim myWord As Object

Set myWord = CreateObject(«Word.Application»)

Присвоение переменной myWord ссылки на открытый экземпляр приложения Word с помощью функции GetObject:

Dim myWord As Object

Set myWord = GetObject(, «Word.Application»)

Если открытого приложения Word нет, выполнение функции GetObject приведет к ошибке. Чтобы ее избежать, следует предусмотреть создание нового экземпляра Word.Application с помощью функции CreateObject, если открытое приложение не будет найдено (смотрите пример 3).

В программы VBA Excel, работающие с Word, следует включать обработчик ошибок.

Закрытие объекта Word.Application

Новый экземпляр приложения Word открывается в фоновом режиме. Если необходимо его отобразить на экране перед завершением программы, используйте следующий код:

‘отображаем приложение Word

myWord.Visible = True

‘освобождаем переменную от ссылки

Set myWord = Nothing

Если перед завершением процедуры VBA Excel необходимо приложение Word закрыть, используйте метод Quit:

‘закрываем приложение Word

myWord.Quit

‘освобождаем переменную от ссылки

Set myWord = Nothing

Если переменная не содержит ссылку на приложение (myWord = Nothing), метод Quit возвратит ошибку. Чтобы этого не произошло, перед применением метода Quit необходимо проверить наличие ссылки в переменной myWord (смотрите пример 3).

Пример 1
Создаем новый экземпляр объекта Word.Application с ранним связыванием и отображаем его на экране:

Sub Primer1()

Dim myWord As New Word.Application

‘———-

‘блок операторов для создания, открытия

‘и редактирования документов Word

‘———-

myWord.Visible = True

Set myWord = Nothing

End Sub

Запустите код примера 1 на выполнение. Вы увидите появившийся на панели задач ярлык приложения Word. Перейдите на него и закройте приложение вручную.

Пример 2
Создаем новый экземпляр объекта Word.Application с поздним связыванием, отображаем его на экране, останавливаем программу и наблюдаем закрытие приложения методом Quit:

Sub Primer2()

Dim myWord As Object

Set myWord = CreateObject(«Word.Application»)

‘———-

‘блок операторов для создания, открытия

‘и редактирования документов Word

‘———-

myWord.Visible = True

MsgBox «Остановка программы»

myWord.Quit

Set myWord = Nothing

End Sub

Запустите код примера 2 на выполнение. Закройте информационное окно MsgBox и смотрите, как исчезнет с панели задач ярлык приложения Word, созданного перед остановкой кода.

Пример 3
Пытаемся создать ссылку на открытый экземпляр приложения Word с помощью функции GetObject, а если открытого экземпляра нет, создаем новый с помощью функции CreateObject:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

Sub Primer3()

Dim myWord As Object

On Error Resume Next

Set myWord = GetObject(, «Word.Application»)

  If myWord Is Nothing Then

    Set myWord = CreateObject(«Word.Application»)

  End If

On Error GoTo Instr

‘———-

‘блок операторов для создания, открытия

‘и редактирования документов Word

‘———-

myWord.Visible = True

Set myWord = Nothing

Exit Sub

Instr:

  If Err.Description <> «» Then

    MsgBox «Произошла ошибка: « & Err.Description

  End If

  If Not myWord Is Nothing Then

    myWord.Quit

    Set myWord = Nothing

  End If

End Sub

Строка On Error Resume Next передаст управление следующему оператору, если открытого экземпляра программы Word не существует, и выполнение функции GetObject приведет к ошибке. В этом случае будет создан новый экземпляр Word.Application с помощью функции CreateObject.

В код добавлен обработчик ошибок On Error GoTo Instr, который поможет корректно завершить программу при возникновении ошибки. А также он позволит во время тестирования не наплодить большое количество ненужных экземпляров приложения Word. Проверяйте их наличие по Диспетчеру задач (Ctrl+Shift+Esc) и удаляйте лишние.

Строка Exit Sub завершит процедуру, если она прошла без ошибок. В случае возникновения ошибки, будет выполнен код после метки Instr:.

  • Remove From My Forums
  • Question

  • Hello,

    I have a list of words that I need to highlight in a doc using C# code.

    Everything works fine if when I open the doc the property visible is set to true.

    When the property visible is set to false the selection property is null and I can’t highlight the text.

    I need to highlight the text in the back before I display the doc in a viewer I use so I can’t use the visible = true.

    Please look at the attached code and tell me how can I make it work

    Microsoft.Office.Interop.Word.Application a = new Microsoft.Office.Interop.Word.Application();                        
    
    Document oDoc = a.Application.Documents.Open(fileName, ReadOnly: false, Visible: false);                        
    
    List<string> words = new List<string>();
    
    words.Add("me");
    
    words.Add("you");
    
    words.Add("us");
    
    foreach (string word in words)
    
    {
    
    	SelectionFind(word, a);
    
    }
    
    oDoc.Save();
    
    private void SelectionFind(string piWord, Microsoft.Office.Interop.Word.Application piWordApp)
    
    {                  
    
    	piWordApp.Selection.Find.ClearFormatting();
    
            piWordApp.Visible = true;
    
            piWordApp.Selection.Find.Replacement.ClearFormatting();
    
            piWordApp.Selection.Find.Replacement.Highlight = 1;
    
            piWordApp.Selection.Find.Text = piWord;
    
            piWordApp.Selection.Find.Replacement.Text = piWord;
    
            piWordApp.Selection.Find.Forward = true;
    
            piWordApp.Selection.Find.Wrap = WdFindWrap.wdFindContinue;
    
            piWordApp.Selection.Find.Format = true;
    
            piWordApp.Selection.Find.MatchCase = false;
    
            piWordApp.Selection.Find.MatchWholeWord = false;
    
            piWordApp.Selection.Find.MatchWildcards = false;
    
            piWordApp.Selection.Find.MatchSoundsLike = false;
    
            piWordApp.Selection.Find.MatchAllWordForms = false;
    
            piWordApp.Selection.Find.Execute(Replace: WdReplace.wdReplaceAll);
    
            piWordApp.Options.DefaultHighlightColorIndex = WdColorIndex.wdYellow;
    
            piWordApp.Selection.Range.HighlightColorIndex = WdColorIndex.wdYellow;
    
    }
    

    Thanks,

    Orit

Answers

  • Hi Orit

    Don’t use Selection.Find, use Range.Find. And apply the highlighting as part of the replacement. Something like this:

      Word.Range rngFind = piWordApp.ActiveDocument.Content;
      piWordApp.Options.DefaultHighlightColorIndex = WdColorIndex.wdYellow;
      rngFind.Find.ClearFormatting();
      rngFind.Replacement.Highlight = true;
      //and so on…
      rngFind.Execute(Replace: WdReplace.wdReplaceAll);


    Cindy Meister, VSTO/Word MVP

    • Marked as answer by

      Tuesday, December 27, 2011 8:11 AM

I want to open a word document through interop and word must be visible in the process.It looks to be fairly straight forward because there is a parameter called «visible in the open function on a word document. But word is in the background. What am I missing?

static void Main(string[] args)
{
    Microsoft.Office.Interop.Word.Application word = null;
    word = new Microsoft.Office.Interop.Word.Application();

    object inputFile = "c:\test.docx";
    object confirmConversions = false;
    object readOnly = true;
    object visible = true;
    object missing = Type.Missing;

    // Open the document...
    Microsoft.Office.Interop.Word.Document doc = null;
    doc = word.Documents.Open(
        ref inputFile, ref confirmConversions, ref readOnly, ref missing,
        ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref visible,
        ref missing, ref missing, ref missing, ref missing);
    doc.Activate();

    Console.ReadKey();
}

Объект WshShell

Методы

AppActivate

Синтаксис:

AppActivate(<Title>)

Назначение:

Активизирует указанное окно какого-либо приложения. Возвращает True в случае успеха и False в случае неудачи.

Параметры:

<Title> — заголовок окна приложения или идентификатор процесса.

Описание:

Если в качестве параметра указан заголовок окна приложения, значение параметра сравнивается по очереди с заголовками окон всех запущенных приложений. Если не найдено ни одного точного совпадения, будет производиться поиск окна, заголовок которого начинается с указанной строки. Если и в этом случае не будет найдено ни одного подходящего окна, будет производиться поиск окна, заголовок которого заканчивается на указанную строку. Если будет найдено несколько подходящих окон, произойдёт активизация одного из них (произвольно).

Пример:

Set WshShell = CreateObject(«WScript.Shell»)

Set WshExec = WshShell.Exec(«notepad»)

WScript.Sleep 2000

Res = WshShell.AppActivate(WshExec.ProcessID)

If Res Then WshShell.SendKeys(«0123456789»)

© 2004 http://small.h12.ru

Like this post? Please share to your friends:
  • Word apple in french
  • Word apple in a picture
  • Word appearance and character
  • Word appcrash wwlib dll
  • Word app games android