<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; WSH, jscript поиск и замена в надписях MS Word]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=16006</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16006&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «WSH, jscript поиск и замена в надписях MS Word».]]></description>
		<lastBuildDate>Wed, 27 Jan 2021 19:14:00 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: WSH, jscript поиск и замена в надписях MS Word]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=145530#p145530</link>
			<description><![CDATA[<p>По хорошему, нужен сам документ, чтобы воспроизвести «затык» и разобраться, что не так.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Wed, 27 Jan 2021 19:14:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=145530#p145530</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH, jscript поиск и замена в надписях MS Word]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=145527#p145527</link>
			<description><![CDATA[<p><strong>putrsa</strong>, приветствую. Не уверен, но возможно это позволит ускорить замену: <a href="https://stackoverflow.com/a/26266598">ссылка</a> ?</p>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Wed, 27 Jan 2021 17:49:18 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=145527#p145527</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH, jscript поиск и замена в надписях MS Word]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=145239#p145239</link>
			<description><![CDATA[<div class="codebox"><pre><code>alert(tdoc.StoryRanges.Count);</code></pre></div><p> возвращает 2, значит все-таки не пустая коллекция<br />в коде <strong>Rumata </strong> сторесы перебирает, но замена все равно не происходит, хотя и ошибок не показывает<br /></p><div class="codebox"><pre><code>var ranges  = new Enumerator(tdoc.StoryRanges);
for ( ; !ranges.atEnd(); ranges.moveNext()) {
    var item = ranges.item();
    item.Find.Execute(&#039;aaaa&#039;, false, false, false, false, false, true, false, false, &#039;bbbb&#039;, 2);
}</code></pre></div><p>сделал пока так:<br /></p><div class="codebox"><pre><code>
        sh_count=tdoc.Shapes.Count;
		tdoc.Content.Find.Execute(&#039;aaaa&#039;, false, false, false, false, false, true, false, false, &#039;bbbb&#039;, 2);
		for (var i=1;i&lt;sh_count;i++){
			tdoc.Shapes.Item(i).Select();
			tdoc.Application.Selection.Range.Find.Execute(&#039;aaaa&#039;, false, false, false, false, false, true, false, false, &#039;bbbb&#039;, 2);
			}
</code></pre></div><p>сначала меняю в тексте, а потом перебираю все фигуры, но это дико медленно</p>]]></description>
			<author><![CDATA[null@example.com (putrsa)]]></author>
			<pubDate>Fri, 22 Jan 2021 06:20:22 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=145239#p145239</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH, jscript поиск и замена в надписях MS Word]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=145195#p145195</link>
			<description><![CDATA[<p>В JS делается немного по другому:</p><div class="codebox"><pre><code>
var ranges  = new Enumerator(tdoc.StoryRanges);

for ( ; !ranges.atEnd(); ranges.moveNext()) {
    var item = ranges.item();
    bla-bla-blah
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 21 Jan 2021 19:53:02 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=145195#p145195</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH, jscript поиск и замена в надписях MS Word]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=145193#p145193</link>
			<description><![CDATA[<p>Работает:<br /></p><div class="codebox"><pre><code>Option Explicit

Const wdFindContinue = 1
Const wdReplaceAll = 2


Dim objWord
Dim objRange


Set objWord = WScript.CreateObject(&quot;Word.Application&quot;)

With objWord.Documents.Open(&quot;C:\Мои проекты\0334\Sample.doc&quot;)
	For Each objRange In .StoryRanges
		With objRange
			With .Find
				.ClearFormatting
				.Text = &quot;привет&quot;
				
				With .Replacement
					.ClearFormatting
					.Text = &quot;мир&quot;
				End With
				
				.Forward = True
				.Format = False
				.MatchCase = False
				
				.Wrap = wdFindContinue
				
				.Execute , , , , , , , , , , wdReplaceAll
			End With
		End With
	Next
End With

objWord.Visible = True

Set objWord = Nothing

WScript.Quit 0</code></pre></div><p>Возможно, для перебора коллекции .StoryRanges надо пользовать иное:<br /></p><div class="quotebox"><blockquote><p>Use the Enumerator object to iterate members of a collection.</p></blockquote></div><p>«WScript.Echo(tdoc.StoryRanges.Count);» — что покажет?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 21 Jan 2021 19:50:47 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=145193#p145193</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH, jscript поиск и замена в надписях MS Word]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=145182#p145182</link>
			<description><![CDATA[<p><strong>alexii</strong>е<br /></p><div class="codebox"><pre><code>for(itm in tdoc.StoryRanges){
}</code></pre></div><p>не срабатывает ни разу, StoryRanges возвращает пустую коллекцию, возможно через ActiveX не работает</p>]]></description>
			<author><![CDATA[null@example.com (putrsa)]]></author>
			<pubDate>Thu, 21 Jan 2021 19:13:56 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=145182#p145182</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH, jscript поиск и замена в надписях MS Word]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=145162#p145162</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p><strong>Content Property</strong></p><p>Returns a Range object that represents the main document story.</p></blockquote></div><p>А надписи сюда не входят.</p><p>Ну, например (на VBA):<br /></p><div class="codebox"><pre><code>Option Explicit

Sub Sample()
    Dim objRange As Range
    
    For Each objRange In ActiveDocument.StoryRanges
        With objRange
            With .Find
                .ClearFormatting
                .Text = &quot;привет&quot;
                
                With .Replacement
                    .ClearFormatting
                    .Text = &quot;мир&quot;
                End With
            
            .Forward = True
            .Format = False
            .MatchCase = False
            
            .Wrap = wdFindContinue
            
            .Execute Replace:=wdReplaceAll
            End With
        End With
    Next objRange
End Sub
</code></pre></div><p>— будет искать и заменять везде.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 21 Jan 2021 17:09:09 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=145162#p145162</guid>
		</item>
		<item>
			<title><![CDATA[WSH, jscript поиск и замена в надписях MS Word]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=145156#p145156</link>
			<description><![CDATA[<p>нижеприведенный код четко меняет заданные слова в простом тексте, а вот в текстовых полях(надписях) ни в какую, подскажите, куда копать? ворд использую 2007, поверял на 2016 тоже не работает<br /></p><div class="codebox"><pre><code>
workpath=&#039;d:\\docGen\\&#039;;
	WordApp=new ActiveXObject(&quot;Word.Application&quot;);
	tdoc=WordApp.Documents.Add(workpath+&quot;t_dod71.dotx&quot;);
	tdoc.Content.Find.Execute(&#039;ппппп&#039;, false, false, false, false, false, true, false, false, &quot;ццццц&quot;, 2);
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (putrsa)]]></author>
			<pubDate>Thu, 21 Jan 2021 16:22:55 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=145156#p145156</guid>
		</item>
	</channel>
</rss>
