<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBA: Поиск в ворд документе рисунков и их координат]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=17069&amp;type=atom" />
	<updated>2023-04-12T13:11:19Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=17069</id>
		<entry>
			<title type="html"><![CDATA[Re: VBA: Поиск в ворд документе рисунков и их координат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=157530#p157530" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[VBAdevelope]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=43111</uri>
			</author>
			<updated>2023-04-12T13:11:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=157530#p157530</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBA: Поиск в ворд документе рисунков и их координат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=152804#p152804" />
			<content type="html"><![CDATA[<p>Как можно кодом VBA найти в ворд документе рисунки и их координаты ?<br />Как можно кодом VBA найти на последней странице&nbsp; ворд документа рисунки и их координаты ?<br />Допускаю, что рисунки могут быть прикреплены к ячейкам таблиц, которые есть в документе. </p><p>И как их можно после найденных координат программно двигать рисунки? (влево, вправо, вверх, вниз).<br />Устанавливая при этом свойство, нахождения рисунка перед текстом.</p>]]></content>
			<author>
				<name><![CDATA[ykr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=42472</uri>
			</author>
			<updated>2022-04-19T09:00:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=152804#p152804</id>
		</entry>
</feed>
