<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693209</guid>
        <pubDate>Sun, 13 Nov 2016 05:42:26 +0000</pubDate>
        <title>Рисование в excel прямоугольника</title>
        <link>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693209</link>
        <description><![CDATA[leo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=409759&view=findpost&p=3693121'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2016-11-12T09:26:12+03:00">12.11.16, 06:26</time></span><div class='quote '>В любом случае, к чему это?</div></div><br>
К тому, что в зависимости от разрядности среды изменяют свой размер только указатели и дескрипторы, а тип DWORD имеет размер 32 бита независимо от разрядности среды, поэтому объявлять его в VB нужно как As Long, а не LongPtr.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=409759&view=findpost&p=3693110'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2016-11-12T03:01:50+00:00">12.11.16, 03:01</time></span><div class='quote '>Есть предложение как правильней подключить Sleep?</div></div><br>
Есть - в твоем &quot;нарытом в нэте&quot; объявлении заменить LongPtr на Long - и всё.]]></description>
        <author>leo</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693121</guid>
        <pubDate>Sat, 12 Nov 2016 06:26:12 +0000</pubDate>
        <title>Рисование в excel прямоугольника</title>
        <link>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693121</link>
        <description><![CDATA[Руслан: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=409759&view=findpost&p=3693118'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>leo &#064; <time class="tag-quote__quoted-time" datetime="2016-11-12T05:40:25+00:00">12.11.16, 05:40</time></span><div class='quote '>Тип LongPtr используется только для указателей и дескрипторов </div></div><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>LongPtr преобразуется в тип Long в 32-разрядных средах или в тип LongLong в 64-разрядных средах.<br>
(office 2013+) <a class='tag-url' href='https://msdn.microsoft.com/ru-ru/library/office/gg251378.aspx' target='_blank'>https://msdn.microsoft.com/ru-ru/library/of...e/gg251378.aspx</a></div></div><br>
В любом случае, к чему это? Есть вариант, как подключить sleep более совместимым с разными версиями excel, или что?]]></description>
        <author>Руслан</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693118</guid>
        <pubDate>Sat, 12 Nov 2016 05:40:25 +0000</pubDate>
        <title>Рисование в excel прямоугольника</title>
        <link>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693118</link>
        <description><![CDATA[leo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=409759&view=findpost&p=3689592'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Руслан &#064; <time class="tag-quote__quoted-time" datetime="2016-10-19T18:31:10+00:00">19.10.16, 18:31</time></span><div class='quote '>Public Declare PtrSafe Sub Sleep Lib &quot;kernel32&quot; (ByVal dwMilliseconds As <strong class='tag-b'>LongPtr</strong>) &#39;For 64 Bit Systems</div></div><br>
Тип LongPtr используется только для указателей и дескрипторов (хэндлов), а параметр dwMilliseconds в Sleep имеет тип DWORD (32 бит), поэтому объявлять его как LongPtr не нужно (хотя и можно - ошибки не будет).]]></description>
        <author>leo</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693110</guid>
        <pubDate>Sat, 12 Nov 2016 03:01:50 +0000</pubDate>
        <title>Рисование в excel прямоугольника</title>
        <link>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693110</link>
        <description><![CDATA[Руслан: Есть предложение как правильней подключить Sleep?]]></description>
        <author>Руслан</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693098</guid>
        <pubDate>Fri, 11 Nov 2016 19:24:01 +0000</pubDate>
        <title>Рисование в excel прямоугольника</title>
        <link>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3693098</link>
        <description><![CDATA[DIS: А какая связь между версией VBA и разрядностью системы?]]></description>
        <author>DIS</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3689592</guid>
        <pubDate>Wed, 19 Oct 2016 18:31:10 +0000</pubDate>
        <title>Рисование в excel прямоугольника</title>
        <link>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3689592</link>
        <description><![CDATA[Руслан: Ну и коль уж такая пьянка, если кто рыть будет в эту же сторону, возможно ему так же как и мне, захочется прикрутить автоматическую и относительно постоянную динамику вращения обьекта, делается это как оказалось (после некоторых мучений) довольно просто:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#39;часть для не допущения повторного запуска функции:</div><div class="code_line">Static fRunning As Boolean &#39;прикрутим переменную, показывающую, что макрос уже запущен</div><div class="code_line">If fRunning Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;fRunning = False &#39;если макрос уже запушеен - запомнить что не запущен,</div><div class="code_line">&nbsp;&nbsp; &nbsp;End &#39;и окночить его выполнение. - Да, вот такая интересная &quot;логика&quot; у ВБ оказалась... ))</div><div class="code_line">End If</div><div class="code_line">&nbsp;&nbsp; fRunning = True &#39; Укажем, что макрос запущен</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#39;а это крутилка: &nbsp;:)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Do &#39;вечный цикл</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;For i = 0 To 360 Step 5</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Application.Calculation = xlCalculationManual &#39;отключаем пересчет таблицы - для нормального отображения, блин...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;s.ThreeD.RotationX = i</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Application.Calculation = xlCalculationAutomatic &#39;для отображения графических изменений... 21й век, блин методы...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DoEvents &#39; Даем Excel команду обработать пользовательский ввод</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Sleep 50 </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Next i</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;DoEvents &#39; Даем Excel команду обработать пользовательский ввод</div><div class="code_line">&nbsp;&nbsp; &nbsp;Loop</div></ol></div></div></div></div><br>
Возможно встанет вопрос как прикрутить Sleep мс? Где нить сверху когда обьявить примерно такую фишку(в нэте нарыл, надеюсь помог вам не рыть всё, чо самому пришлось):<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#If VBA7 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;Public Declare PtrSafe Sub Sleep Lib &quot;kernel32&quot; (ByVal dwMilliseconds As LongPtr) &#39;For 64 Bit Systems</div><div class="code_line">#Else</div><div class="code_line">&nbsp;&nbsp; &nbsp;Public Declare Sub Sleep Lib &quot;kernel32&quot; (ByVal dwMilliseconds As Long) &#39;For 32 Bit Systems</div></ol></div></div></div></div>]]></description>
        <author>Руслан</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3689572</guid>
        <pubDate>Wed, 19 Oct 2016 16:24:35 +0000</pubDate>
        <title>Рисование в excel прямоугольника</title>
        <link>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3689572</link>
        <description><![CDATA[Руслан: О как&#33; <br>
Короче, кто ищет, тот найдет&#33; <br>
Попер я значит в свойства прямоугольника (правой кнопкой, &quot;формат фигуры&quot;), смотрю - есть же 3Д упоминания&#33; А раз есть - значит и менять его можно в ВБ.<br>
Захожу в ВБ редактор, view&#092;locals window - отображаем окно со свойствами обьектов.<br>
Ставлю БП(BreakPoint) на строчку выше обращения к прямоугольнику - кнопкой F9. Потом кнопкой F8 дохожу до обработки своего обьекта - s.  Наблюдаю появление возможности посмотреть какие свойства можно менять у обьекта&#33;&#33; Ура&#33; <br>
<br>
<span class="b-attach" data-size="152636" data-hits="729" data-attach-id="50312" data-attach-post-id="3689572">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3689572&amp;attach_id=50312' title='Скачать файл' target='_blank'>Untitled_1.jpg</a> (, : 729)
		</span><br>
<br>
В итоге добавляю в обработчик: <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;s.Width = Range(&quot;B5&quot;).Value</div><div class="code_line">&nbsp;&nbsp; &nbsp;s.Height = Range(&quot;C5&quot;).Value</div><div class="code_line">&nbsp;&nbsp; &nbsp;s.ThreeD.BevelTopDepth = Range(&quot;B6&quot;).Value</div><div class="code_line">&nbsp;&nbsp; &nbsp;s.ThreeD.RotationX = Range(&quot;B9&quot;).Value</div><div class="code_line">&nbsp;&nbsp; &nbsp;s.ThreeD.RotationY = Range(&quot;B10&quot;).Value</div><div class="code_line">&nbsp;&nbsp; &nbsp;s.ThreeD.RotationZ = Range(&quot;B11&quot;).Value</div></ol></div></div></div></div><br>
<br>
И вуаля&#33; Всё работает, параллелепипед изобретён, и даже вращается при изменении ячеек B9=-30 B10=20 B11=0   :)  :)  :)]]></description>
        <author>Руслан</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3689558</guid>
        <pubDate>Wed, 19 Oct 2016 15:08:17 +0000</pubDate>
        <title>Рисование в excel прямоугольника</title>
        <link>https://forum.sources.ru/index.php?showtopic=409759&amp;view=findpost&amp;p=3689558</link>
        <description><![CDATA[Руслан: Хэллоу&#33; <br>
Сформировал табличку с данными по размерам&#092;стоимости листового текстолита, дальше считаю стоимость изделий(плат, вообще то, но вот решил ради интереса посчитать и коробку, собранную из него же - параллелепипедом ботаны обзывают этот трехмерный прямоугольник)... <br>
И всё прекрасно считается, но не хватает визуализации&#33; - Вроде не в каменном же веке живём, автоматизация + визуализации, все дела...  :rolleyes: <br>
<br>
Вставка, фигуры, прямоугольник - получилось вставить&#33;<br>
Добавить функцию изменения размеров прямоугольника - получилось:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Sub Прямоугольник1()</div><div class="code_line">Set s = ActiveSheet.Shapes(&quot;Прямоугольник 1&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;s.DrawingObject.Caption = Range(&quot;A5&quot;) &#39;текст в прямоугольнике</div><div class="code_line">&nbsp;&nbsp; &nbsp;s.Width = Range(&quot;B5&quot;).Value &#39;ширина</div><div class="code_line">&nbsp;&nbsp; &nbsp;s.Height = Range(&quot;C5&quot;).Value &#39;высота</div><div class="code_line">End Sub</div></ol></div></div></div></div><br>
<br>
Добавить авто-применение размеров, при изменении значений в ячейке - получилось (пр.кн.мышки по вкладке &quot;Лист2&quot;, &quot;исходный текст&quot;):<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Private Sub Worksheet_SelectionChange(ByVal Target As Range)</div><div class="code_line">&nbsp;&nbsp;Application.Run &quot;Прямоугольник1&quot;</div><div class="code_line">End Sub</div></ol></div></div></div></div><br>
И всё бы хорошо, но продолжать в том же духе, рисуя параллелепипед из прямоугольников и линий - по моему несколько извратно, для 21го века... Неужели нет способа проще? - редактировать сразу параллелепипед, придав ему <strong class='tag-b'>x,y,z</strong>, и может быть даже некое вращение, уклон?  :rolleyes:]]></description>
        <author>Руслан</author>
        <category>VB for Application</category>
      </item>
	
      </channel>
      </rss>
	