<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA: Поиск в ворд документе рисунков и их координат]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=17069</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=17069&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA: Поиск в ворд документе рисунков и их координат».]]></description>
		<lastBuildDate>Wed, 12 Apr 2023 13:11:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBA: Поиск в ворд документе рисунков и их координат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=157530#p157530</link>
			<description><![CDATA[<p>Рисунки ищем перебором. Если речь идёт о InlineShape, то </p><div class="codebox"><pre><code>Dim oInlShp as InlineShape
For Each oInlShp in ActiveDocument.InlineShapes

Next oInlShp </code></pre></div><p>Но их двигать не получится. Они являются частью .Range документа. Можно взять их начало и конец для выделения, а также использовать метод .ConvertToShape для двиганья всего, что не двигается.</p><div class="codebox"><pre><code>iStart = oInlShp.Range.Start
iEnd = oInlShp.Range.End
oDoc.Range(iStart, iEnd).Select
Selection.Range.InlineShapes(1).ConvertToShape</code></pre></div><p>Для Shapes то же самое с перебором только </p><div class="codebox"><pre><code>Dim oShp as Shape
For Each oShp in ActiveDocument.Shapes

Next oShp</code></pre></div><p>У них используются свойства Left и Top до левого верхнего угла поля ввода<br /></p><div class="codebox"><pre><code>
oShape.Select
iPosL = oShape.left
iPosTop = oShape.top</code></pre></div><p>Вот и двигайте, сколько надо, указывая эти позиции.<br />Последняя страница определяется так: Смотрим для документа, сравниваем с объектом:</p><div class="codebox"><pre><code>Set oDoc = ActiveDocument
iLast = oDoc.Content.Information(wdActiveEndAdjustedPageNumber)
oShape.Select
If Selection.Information(wdActiveEndAdjustedPageNumber) = iLast Then
	&#039;Двигаем объект 
End if</code></pre></div><p>Во всяком случае я вижу это так.<br />Ах да, относительно чего они будут перемещаться регулируется свойством .RelativeHorizontalPosition и .RelativeVerticalPosition этих самых Shapes. Есть на майрософте табличка этих констант. А за положение относительно текста отвечает свойсто .WrapFormat.Type = . Также есть ZOrderPosition для смещения относительно других шейпов. По факту всё есть банально в объектной модели Shape на майкрософте.</p>]]></description>
			<author><![CDATA[null@example.com (VBAdevelope)]]></author>
			<pubDate>Wed, 12 Apr 2023 13:11:19 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=157530#p157530</guid>
		</item>
		<item>
			<title><![CDATA[VBA: Поиск в ворд документе рисунков и их координат]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=152804#p152804</link>
			<description><![CDATA[<p>Как можно кодом VBA найти в ворд документе рисунки и их координаты ?<br />Как можно кодом VBA найти на последней странице&nbsp; ворд документа рисунки и их координаты ?<br />Допускаю, что рисунки могут быть прикреплены к ячейкам таблиц, которые есть в документе. </p><p>И как их можно после найденных координат программно двигать рисунки? (влево, вправо, вверх, вниз).<br />Устанавливая при этом свойство, нахождения рисунка перед текстом.</p>]]></description>
			<author><![CDATA[null@example.com (ykr)]]></author>
			<pubDate>Tue, 19 Apr 2022 09:00:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=152804#p152804</guid>
		</item>
	</channel>
</rss>
