<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Word - как добавлять обработчики событий?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5419&amp;type=atom" />
	<updated>2015-05-31T15:49:26Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5419</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=94288#p94288" />
			<content type="html"><![CDATA[<p>Почти не разбираюсь в Office/VBA, поэтому не утверждаю, что предложенное решение наиболее грамотное, но вполне рабочее. Для ожидания закрытия документа можно в цикле с задержкой (в HTA можно использовать <em>window.setInterval()</em>) проверять доступность какого-либо из свойств документа:<br /></p><div class="codebox"><pre><code>Set MSWordDoc = WScript.CreateObject(&quot;Word.Document&quot;)
MSWordDoc.Application.Visible = True
On Error Resume Next
Do
    IsEmpty MSWordDoc.Name
    If Err.Number Then
        MsgBox &quot;Closed&quot;
        WScript.Quit
    End If
    WScript.Sleep 1
Loop
</code></pre></div><p>— использование именно функции <em>IsEmpty()</em>, вызываемой как процедура, здесь не существенно — вместо неё можно было использовать <em>VarType()</em>, <em>UCase()</em> и многие другие, или просто присваивать значение свойства переменной (но для этого, о ужас, понадобилось бы вводить дополнительную переменную). Можно было бы также воспользоваться тем, что <em>TypeName(MSWordDoc)</em> при закрытии документа меняет значение с <strong>&quot;Document&quot;</strong> на <strong>&quot;Object&quot;</strong>.</p>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2015-05-31T15:49:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=94288#p94288</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44646#p44646" />
			<content type="html"><![CDATA[<p><span style="color: Green"><strong>LeshikSan</strong>, код на форуме оформляется <a href="http://forum.script-coding.com/help.php#bbcode">тэгом «code»</a>, а не тэгом «i». Исправьте.</span></p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-01-31T08:56:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44646#p44646</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44643#p44643" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Do: WScript.Sleep 1: Loop</code></pre></div><p>Ну я и фрося <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /><strong>wisgest</strong>, а как тоже самое сделать для документа?<br />Такой код уже не работает:<br /></p><div class="codebox"><pre><code>Set MSWordDoc = WScript.CreateObject(&quot;Word.Document&quot;, &quot;MSWordDoc_&quot;)
MSWordDoc.Application.Visible = True
Sub MSWordDoc_Close
 MsgBox &quot;Close&quot;
 WScript.Quit
End Sub
Do: WScript.Sleep 1: Loop</code></pre></div>]]></content>
			<author>
				<name><![CDATA[LeshikSan]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26243</uri>
			</author>
			<updated>2011-01-31T08:21:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44643#p44643</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44555#p44555" />
			<content type="html"><![CDATA[<p>Однако, работает:<br /></p><div class="codebox"><pre><code>Set MSWord = WScript.CreateObject(&quot;Word.Application&quot;, &quot;MSWord_&quot;)
MSWord.Visible = True
Sub MSWord_Quit
   MsgBox &quot;Quit&quot;
   WScript.Quit
End Sub

&#039;WScript.Sleep &amp;H7FFFFFFF
Do: WScript.Sleep 1: Loop</code></pre></div><p>(Интересно, что если раскомментировать предпоследнюю строку, то WScript.Quit не прерывает WScript.Sleep и процесс WScript.exe не завершается.)</p>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2011-01-29T16:12:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44555#p44555</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44497#p44497" />
			<content type="html"><![CDATA[<p><strong>chessman</strong>, спасибо за ссылку!<br />Вот только пример не работает...<br /></p><div class="codebox"><pre><code>Set MSWord = WScript.CreateObject(&quot;Word.Application&quot;, &quot;MSWord_&quot;)
MSWord.Visible = True
Sub MSWord_Quit
   MsgBox &quot;Quit&quot;
End Sub</code></pre></div>]]></content>
			<author>
				<name><![CDATA[LeshikSan]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26243</uri>
			</author>
			<updated>2011-01-28T18:18:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44497#p44497</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44490#p44490" />
			<content type="html"><![CDATA[<p>А это не поможет? <a href="http://www.rsdn.ru/article/com/eventsinscript.xml">http://www.rsdn.ru/article/com/eventsinscript.xml</a></p>]]></content>
			<author>
				<name><![CDATA[chessman]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25359</uri>
			</author>
			<updated>2011-01-28T14:58:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44490#p44490</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44435#p44435" />
			<content type="html"><![CDATA[<p>Запускаю из-под HTA, хочу немножко доработать <a href="http://forum.script-coding.com/viewtopic.php?pid=44289#p44289">этот</a> скрипт.<br />Боюсь, что DynamicWrapperX будет тяжеловат для моей пустяшной задачи <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[LeshikSan]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26243</uri>
			</author>
			<updated>2011-01-26T16:22:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44435#p44435</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44432#p44432" />
			<content type="html"><![CDATA[<p>Кстати, а откуда ты vbs запускаешь?</p>]]></content>
			<author>
				<name><![CDATA[chessman]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25359</uri>
			</author>
			<updated>2011-01-26T15:27:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44432#p44432</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44430#p44430" />
			<content type="html"><![CDATA[<p>Если готов использовать DynamicWrapperX + мои исправления к нему, то могу код показать.<br />Только кода там прилично, т.к. приходится анализировать библиотеку типов, искать интерфейс по-умолчанию, реализовывать свой IDispatch...и все это на VBScript</p>]]></content>
			<author>
				<name><![CDATA[chessman]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25359</uri>
			</author>
			<updated>2011-01-26T15:15:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44430#p44430</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44426#p44426" />
			<content type="html"><![CDATA[<p>Ну я создаю экземпляр через CreateObject(&quot;Word.Application&quot;), в нем создаю документ<br />Или получаю уже открытый через GetObject(,&quot;Word.Application&quot;)</p>]]></content>
			<author>
				<name><![CDATA[LeshikSan]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26243</uri>
			</author>
			<updated>2011-01-26T14:29:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44426#p44426</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44413#p44413" />
			<content type="html"><![CDATA[<p>У тебя Word будет открыт в ActiveX&#039;e?</p>]]></content>
			<author>
				<name><![CDATA[chessman]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25359</uri>
			</author>
			<updated>2011-01-26T11:55:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44413#p44413</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: Word - как добавлять обработчики событий?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44407#p44407" />
			<content type="html"><![CDATA[<p>Нужно добавить обработчики на такие события как Open, Close, Save<br />Везде примеры для макросов, а для VBS ничего нет <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[LeshikSan]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26243</uri>
			</author>
			<updated>2011-01-26T09:32:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44407#p44407</id>
		</entry>
</feed>
