<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Сделаем это быстро &#187; Автоматизация</title>
	<atom:link href="http://doitq.ru/category/avtomatizatsiya/feed/" rel="self" type="application/rss+xml" />
	<link>http://doitq.ru</link>
	<description>18,6% того, что вы хотели знать о своем компьютере</description>
	<lastBuildDate>Thu, 09 Feb 2012 15:15:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Простое конструирование строк</title>
		<link>http://doitq.ru/2011/01/12/prostoe-konstruirovanie-strok/</link>
		<comments>http://doitq.ru/2011/01/12/prostoe-konstruirovanie-strok/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 16:23:33 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[Автоматизация]]></category>
		<category><![CDATA[Грабли и рукоятки]]></category>

		<guid isPermaLink="false">http://doitq.ru/?p=1193</guid>
		<description><![CDATA[Случается, надо какой-нибудь текстик отхетемеелить вручную. Проставить теги HTML, я имею в виду, вы поняли. Случается также нужда в сложносочиненных ссылках с кучей параметров. Раньше я просто сохранял шаблончик в заметках или даже заметках. А потом вручную искал правильные места и копипастил в них требуемые параметры. Что есть очень глупо и небыстро, и противоречит основному [...]]]></description>
			<content:encoded><![CDATA[<p>Случается, надо какой-нибудь текстик отхетемеелить вручную. Проставить теги HTML, я имею в виду, вы поняли. Случается также нужда в сложносочиненных ссылках с кучей параметров. Раньше я просто сохранял шаблончик в <a href="http://doitq.ru/2010/02/17/post-it-v-seti/">заметках</a> или даже <a href="http://doitq.ru/2010/12/23/prostye-zametki-simple-note/">заметках</a>. А потом вручную искал правильные места и копипастил в них требуемые параметры. Что есть очень глупо и небыстро, и противоречит основному тезису моего блога.</p>
<p>Идею писать скриптики я отбросил сразу: дело, может, и несложное, но для меня малопривычное. Кроме того, я хочу, чтобы все работало в браузере на любой машине, а такого рода скриптики — дело еще менее привычное. Для меня.</p>
<p>Остановился на <a href="http://docs.google.com/">документах Google</a>. Создал табличку, в одни ячейки которой вставляю параметры, а из другой копирую готовую строку. Вот небольшой отрывок:</p>
<p><a style="border-bottom:0px;" rel="attachment wp-att-1194" href="http://doitq.ru/2011/01/12/prostoe-konstruirovanie-strok/strings/"><img class="alignnone size-full wp-image-1194" style="border:0px" title="Сборка строк" src="http://doitq.ru/wp-content/uploads/2011/01/strings.png" alt="Сборка строк" width="618" height="94" /></a></p>
<p>Формула результирующей ячейки (A7): ="&lt;a href='"&amp;B7&amp;"' title='"&amp;D7&amp;"'&gt;"&amp;C7&amp;"&lt;/a&gt;"</p>
<p>Обратите внимание: внутри строки, ограниченной кавычками, используется апостроф. Или это одинарная кавычка? Как правильно?</p>
<p>***<br />
Все эти советы не будут иметь никакого смысла, если с вашим компьютером вдруг что-то случится. Тогда вам будет не до программ и сайтов, вы будете искать компьютерной помощи. На двери вашего подъезда всегда найдется рекламка того или иного специалиста, но не лучше ли заказать комплексный <a href="http://www.compilog.ru/">ремонт компьютеров</a> в Петербурге с бесплатными консультациями, диагностикой и вызовом? По крайней мере, здесь сразу указаны ориентировочные цены на услуги, и можно сразу задать свой вопрос. Только если у вас один компьютер, перепишите заранее телефон. На бумажку — она не ломается.</p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2011/01/12/prostoe-konstruirovanie-strok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как не запутаться в программах</title>
		<link>http://doitq.ru/2010/01/24/kak-ne-zaputatsya-v-programmax/</link>
		<comments>http://doitq.ru/2010/01/24/kak-ne-zaputatsya-v-programmax/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 12:38:23 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[Автоматизация]]></category>

		<guid isPermaLink="false">http://doitq.ru/?p=506</guid>
		<description><![CDATA[Бывают такие программы, которые нужны раз в полгода. И все бы ничего, только их функциональность никак не следует из названия. А еще у разработчиков есть милая привычка подсовывать свою торговую марку в название программы. Поди догадайся, что какой-нибудь MediaClick Fortune 2009 на самом деле ищет одинаковые изображения на дисках (название выдумано).
Для решения проблемы я сделал [...]]]></description>
			<content:encoded><![CDATA[<p>Бывают такие программы, которые нужны раз в полгода. И все бы ничего, только их функциональность никак не следует из названия. А еще у разработчиков есть милая привычка подсовывать свою торговую марку в название программы. Поди догадайся, что какой-нибудь MediaClick Fortune 2009 на самом деле ищет одинаковые изображения на дисках (название выдумано).</p>
<p>Для решения проблемы я сделал себе &laquo;меню домохозяйки&raquo;. Это просто папочка, лежащая в легко доступном месте, и содержащая ярлыки всех прикладных программ. То же, что и в папке &laquo;Программы&raquo; Windows. Отличие в том, что во-первых, там нет никаких вложенных папок, только плоский список, а во-вторых, имена программ дополнены краткими описаниями. Вместо &laquo;Fortune 2009&raquo; мы пишем &laquo;Удалить дубли фоток - Fortune 2009&raquo;. И так для всех программ, как установленных, так и идущих без инсталлятора и не получивших ссылки из главного меню &laquo;Программы&raquo;. Кстати, в процессе создания этой папочки можно столько всего поудалять!</p>
<p>Приведенный рецепт работает и в Windows XP, но в Vista и Windows 7 добавляется еще бонус: там можно запускать программы через поиск по названию. То есть можно прямо так и набирать &laquo;удалить дубли&raquo;.</p>
<p>И еще кое-что: в окне свойств ярлыка есть поле &laquo;Комментарий&raquo;. Если указать в нем категорию, к которой относится программа, например &laquo;Видео&raquo;, &laquo;Фото&raquo;, &laquo;Разработка&raquo;, после можно будет при просмотре вашей папки в Проводнике сгруппировать ярлыки по этим категориям.</p>
<p>Кстати, вы не обязаны ограничиваться только ярлыками программ. По той же схеме можно наделать себе линков на полезные сайты. Например, &laquo;Учиться быстро - <a href="http://www.etoday.ru/2009/12/kompaniya-homeworkpro.php">homework pro отзывы</a>&raquo;. Тем более, что и многие приложения нынче в сети.</p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2010/01/24/kak-ne-zaputatsya-v-programmax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Анонс</title>
		<link>http://doitq.ru/2009/05/16/anons/</link>
		<comments>http://doitq.ru/2009/05/16/anons/#comments</comments>
		<pubDate>Sat, 16 May 2009 20:33:32 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[Автоматизация]]></category>
		<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://doitq.ru/2009/05/16/anons/</guid>
		<description><![CDATA[Формат блога плохо подходит для выкладывания чего-либо, кроме текста. Но я ваяю еще и небольшие скриптики для облегчения рутинных действий. Расчесав репу, решил сделать посвященный этому делу подраздел. На DoItQ Tools переезжают макросы для Microsoft Office и родственных пакетов, обещаются новые, а также появляются отдельные маленькие программки. Ничего особенного, просто что-то, написанное для моего удобства, [...]]]></description>
			<content:encoded><![CDATA[<p>Формат блога плохо подходит для выкладывания чего-либо, кроме текста. Но я ваяю еще и небольшие скриптики для облегчения рутинных действий. Расчесав репу, решил сделать посвященный этому делу подраздел. На <a href="http://doitq.ru/tools/">DoItQ Tools</a> переезжают макросы для Microsoft Office и родственных пакетов, обещаются новые, а также появляются отдельные маленькие программки. Ничего особенного, просто что-то, написанное для моего удобства, и выложеное для вашего. Добро пожаловать!</p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2009/05/16/anons/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VBA.CorelDraw или о вреде бекапов</title>
		<link>http://doitq.ru/2009/03/25/vbacoreldraw-ili-o-vrede-bekapov/</link>
		<comments>http://doitq.ru/2009/03/25/vbacoreldraw-ili-o-vrede-bekapov/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 08:52:31 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[Автоматизация]]></category>

		<guid isPermaLink="false">http://doitq.ru/2009/03/25/vbacoreldraw-ili-o-vrede-bekapov/</guid>
		<description><![CDATA[Люди, делайте бекапы! Я поменял офисный компьютер и думал, что учел все, но жизнь опять оказалась хитрее. Уже после того, как была дана отмашка на запихивание в шредер предыдущего винчестера, я запустил случайно Corel Draw. И тут вспомнил, что без любовно написанных макросов с этим, извините, редактором работать нельзя вообще. А макросы все остались в [...]]]></description>
			<content:encoded><![CDATA[<p>Люди, делайте бекапы! Я поменял офисный компьютер и думал, что учел все, но жизнь опять оказалась хитрее. Уже после того, как была дана отмашка на запихивание в шредер предыдущего винчестера, я запустил случайно Corel Draw. И тут вспомнил, что без любовно написанных макросов с этим, извините, редактором работать нельзя вообще. А макросы все остались в общей библиотеке. О которой я забыл. Так что приходится теперь потихоньку восстанавливать утраченное. Одно хорошо: есть возможность параллельно и описывать эти скрипты для читателей. Это куда проще, чем пытаться растолковать что-то, написанное год назад.</p>
<p>Итак, первая понадобившаяся мне вчера процедура &mdash; умножение. На большой схеме есть множество текстовых объектов, содержащих числа. Эти числа надо домножить на некие коэффициенты. Делать все вручную рехнешься, поэтому и был написан макрос. Мне требовалось также округлять числа до десятков, а вот проверять на ошибки в случае захвата объекта, содержащего текст, который нельзя конвертировать в число, совершенно не требовалось. Кому надо, дополняйте под себя.&nbsp;</p>
<pre style="color:#000000;background:#ffffff;"><span style="color:#3f7f59; ">' Процедура Multiplicate</span>
<span style="color:#3f7f59; ">' Домножает значения в нескольких выбранных объектах на заданное число.</span>
<span style="color:#3f7f59; ">' Округляет результат до десятков и форматирует с разделителем тысяч.</span>
<span style="color:#3f7f59; ">' Пропускает нетекстовые объекты, но выдает ошибку, если текст</span>
<span style="color:#3f7f59; ">' не является числом.</span>
<span style="color:#3f7f59; ">'</span>
<span style="color:#7f0055; font-weight:bold; ">Sub</span> Multiplicate()
<span style="color:#7f0055; font-weight:bold; ">Dim</span> sh <span style="color:#7f0055; font-weight:bold; ">As</span> Shape
<span style="color:#7f0055; font-weight:bold; ">Dim</span> Multi <span style="color:#7f0055; font-weight:bold; ">As</span> <span style="color:#7f0055; font-weight:bold; ">Double</span>
<span style="color:#7f0055; font-weight:bold; ">Dim</span> UserInput <span style="color:#7f0055; font-weight:bold; ">As</span> <span style="color:#7f0055; font-weight:bold; ">String</span>
<span style="color:#7f0055; font-weight:bold; ">Dim</span> OldVal <span style="color:#7f0055; font-weight:bold; ">As</span> <span style="color:#7f0055; font-weight:bold; ">String</span>
<span style="color:#7f0055; font-weight:bold; ">Dim</span> NewVal <span style="color:#7f0055; font-weight:bold; ">As</span> <span style="color:#7f0055; font-weight:bold; ">Long</span>
<span style="color:#3f7f59; ">' Спрашиваем у пользователя число, и выходим, если он передумал.</span>
UserInput = InputBox(<span style="color:#2a00ff; ">&quot;На что домножить:&quot;</span>, <span style="color:#2a00ff; ">&quot;Домножение&quot;</span>)
<span style="color:#7f0055; font-weight:bold; ">If</span> UserInput = <span style="color:#2a00ff; ">&quot;&quot;</span> <span style="color:#7f0055; font-weight:bold; ">Then</span> <span style="color:#7f0055; font-weight:bold; ">Exit</span> <span style="color:#7f0055; font-weight:bold; ">Sub</span>
<span style="color:#3f7f59; ">' Заменяем в том, что ввел пользователь точку на запятую, чтобы</span>
<span style="color:#3f7f59; ">' не парить его переключением раскладок. Если в системе десятичный</span>
<span style="color:#3f7f59; ">' разделитель - точка, поменяйте в строке ниже точку и запятую местами.</span>
UserInput = Replace(UserInput, <span style="color:#2a00ff; ">&quot;.&quot;</span>, <span style="color:#2a00ff; ">&quot;,&quot;</span>)
Multi = <span style="color:#7f0055; font-weight:bold; ">CDbl</span>(UserInput)
<span style="color:#3f7f59; ">' Перебираем все объекты, которые выделил пользователь перед вызовом</span>
<span style="color:#3f7f59; ">' процедуры</span>
<span style="color:#7f0055; font-weight:bold; ">For</span> <span style="color:#7f0055; font-weight:bold; ">Each</span> sh In ActiveSelection.Shapes
    <span style="color:#7f0055; font-weight:bold; ">With</span> sh
        <span style="color:#3f7f59; ">' Если имеем дело с текстом...</span>
        <span style="color:#7f0055; font-weight:bold; ">If</span> .Type = cdrTextShape <span style="color:#7f0055; font-weight:bold; ">Then</span>
            <span style="color:#3f7f59; ">' Берем старое значение (до 100 символов - для числа хватит)</span>
            OldVal = .Text.Range(0, 100)
            <span style="color:#3f7f59; ">' Чистим от форматирования пробелами</span>
            OldVal = Replace(OldVal, <span style="color:#2a00ff; ">&quot; &quot;</span>, <span style="color:#2a00ff; ">&quot;&quot;</span>)
            <span style="color:#3f7f59; ">' Умножаем и сразу округляем</span>
            NewVal = Round((<span style="color:#7f0055; font-weight:bold; ">CDbl</span>(OldVal) * Multi) / 10) * 10
            <span style="color:#3f7f59; ">' Форматируем и вставляем обратно</span>
            .Text.Range(0, 100) = <span style="color:#7f0055; font-weight:bold; ">Format</span>(NewVal, <span style="color:#2a00ff; ">&quot;### ##0&quot;</span>)
        <span style="color:#7f0055; font-weight:bold; ">End</span> <span style="color:#7f0055; font-weight:bold; ">If</span>
    <span style="color:#7f0055; font-weight:bold; ">End</span> <span style="color:#7f0055; font-weight:bold; ">With</span>
<span style="color:#7f0055; font-weight:bold; ">Next</span>

<span style="color:#7f0055; font-weight:bold; ">End</span> <span style="color:#7f0055; font-weight:bold; ">Sub</span>
</pre>
<p>Также читайте всю <a href="http://doitq.ru/stati/seriya-postov-po-vba/">серию постов по <b>VBA</b></a>.</p>
<p>***</p>
<p>НКВД&nbsp;&mdash; это не только то, что вы подумали, но и то, что вам и в страшном сне не могло присниться. Это <a href="http://nkvd.pro/">хостинг</a>. Кстати, если вы поторопитесь, то успеете на раздачу доменов по смешным ценам.</p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2009/03/25/vbacoreldraw-ili-o-vrede-bekapov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Монтирование дисков в Alcohol</title>
		<link>http://doitq.ru/2008/11/07/montirovanie-diskov-v-alcohol/</link>
		<comments>http://doitq.ru/2008/11/07/montirovanie-diskov-v-alcohol/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 15:20:02 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[Автоматизация]]></category>

		<guid isPermaLink="false">http://doitq.ru/2008/11/07/montirovanie-diskov-v-alcohol/</guid>
		<description><![CDATA[Используете ли вы образы лазерных дисков в виртуальном дисководе вроде бесплатного Alcohol 52%? Именно 52%, потому что 120% стоит денег, а в плане функциональности домашнему пользователю мало что добавляет. У меня потихоньку готовится &#171;возмущенное письмо в редакцию&#187; по поводу необходимости держать на винчестере множество образов в угоду маразматическим защитам дрянного реноме от здравого смысла. Когда-нибудь [...]]]></description>
			<content:encoded><![CDATA[<p>Используете ли вы образы лазерных дисков в виртуальном дисководе вроде бесплатного <a href="http://trial.alcohol-soft.com/en/">Alcohol 52%</a>? Именно 52%, потому что 120% стоит денег, а в плане функциональности домашнему пользователю мало что добавляет. У меня потихоньку готовится &laquo;возмущенное письмо в редакцию&raquo; по поводу необходимости держать на винчестере множество образов в угоду маразматическим защитам дрянного реноме от здравого смысла. Когда-нибудь выложу.</p>
<p>А пока, ребенок, способный сам установить игру (под ограниченной учетной записью, вам это удавалось? мне &mdash; нет), плохо понимает аналогию &laquo;вставить диск = подмонтировать образ с винчестера&raquo;. Поэтому получил от папы набор ярлыков такого вида:</p>
<p><code>&quot;C:\Program Files\Alcohol 52\AxCmd.exe&quot; H: /M:&quot;D:\Disk Images\JEDIOUTCAST.iso&quot;</code></p>
<p>Первая часть &mdash; путь к исполняемому файлу алкоголя, H: &mdash; буква виртуального диска, а после /M: указан путь к образу диска, который нужно смонтировать. Поскольку речь идет о запуске уже установленных игр, можно взять иконку для ярлыка ту же, что и в ярлыке запуска игры, в &laquo;Программах&raquo;.</p>
<p>Теперь достаточно запустить этот ярлык для смены &laquo;диска&raquo; в виртуальном дисководе. Не беспокойтесь, о том &laquo;диске&raquo;, что был &laquo;вставлен&raquo; до запуска. Он сам предварительно отмонтируется.</p>
<p>***</p>
<p><a href="http://eliteforex.ru/">Начните зарабатывать, посетив сайт www.eliteforex.ru</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2008/11/07/montirovanie-diskov-v-alcohol/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>VBA Excel: Формула, заданная строкой</title>
		<link>http://doitq.ru/2008/08/26/vba-excel-formula-zadannaya-strokoj/</link>
		<comments>http://doitq.ru/2008/08/26/vba-excel-formula-zadannaya-strokoj/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 15:51:58 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[MS Office]]></category>
		<category><![CDATA[Автоматизация]]></category>

		<guid isPermaLink="false">http://doitq.ru/2008/08/26/vba-excel-formula-zadannaya-strokoj/</guid>
		<description><![CDATA[Нарыл в загашнике еще одну интересную функцию для Excel. Возникла у меня нужда дать пользователю самому составить простенькую формулу с одной переменной (их, на самом деле строго две, но принцип понятен и на одной). Составить прямо на листе, не после знака &#171;=&#187;, а чтобы видно было. Результат вычисления используется в многих других местах.
' strVar - [...]]]></description>
			<content:encoded><![CDATA[<p>Нарыл в загашнике еще одну интересную функцию для Excel. Возникла у меня нужда дать пользователю самому составить простенькую формулу с одной переменной (их, на самом деле строго две, но принцип понятен и на одной). Составить прямо на листе, не после знака &laquo;=&raquo;, а чтобы видно было. Результат вычисления используется в многих других местах.</p>
<pre><span style="color: rgb(63, 127, 89);">' strVar - значение переменной  </span>
<span style="color: rgb(63, 127, 89);">' strFormula - строка, содержащая саму формулу, место, куда надо</span>
<span style="color: rgb(63, 127, 89);">' подставить переменную, обозначено символами VAR</span>

<span style="color: rgb(127, 0, 85); font-weight: bold;">Function</span> sheetFormula(strVar <span style="color: rgb(127, 0, 85); font-weight: bold;">As</span> <span style="color: rgb(127, 0, 85); font-weight: bold;">String</span>, strFormula <span style="color: rgb(127, 0, 85); font-weight: bold;">As</span> <span style="color: rgb(127, 0, 85); font-weight: bold;">Variant</span>) <span style="color: rgb(127, 0, 85); font-weight: bold;">As</span> <span style="color: rgb(127, 0, 85); font-weight: bold;">Variant</span>

<span style="color: rgb(63, 127, 89);">' Если формула пустая, не тратим ресурсы</span>
<span style="color: rgb(127, 0, 85); font-weight: bold;">If</span> strFormula = <span style="color: rgb(42, 0, 255);">&quot;&quot;</span> <span style="color: rgb(127, 0, 85); font-weight: bold;">Then</span> <span style="color: rgb(127, 0, 85); font-weight: bold;">Exit</span> <span style="color: rgb(127, 0, 85); font-weight: bold;">Function</span>

<span style="color: rgb(63, 127, 89);">' Юзер - дурак, уберем крайние пробелы</span>
strFormula = <span style="color: rgb(127, 0, 85); font-weight: bold;">Trim</span>(strFormula)

<span style="color: rgb(63, 127, 89);">' Чем возиться с параметрами замены, проще все перевести</span>
<span style="color: rgb(63, 127, 89);">' в верхний регистр</span>
strFormula = <span style="color: rgb(127, 0, 85); font-weight: bold;">UCase</span>(strFormula)

<span style="color: rgb(63, 127, 89);">' Подставляем переменную простой заменой</span>
strFormula = Replace(strFormula, <span style="color: rgb(42, 0, 255);">&quot;VAR&quot;</span>, <span style="color: rgb(127, 0, 85); font-weight: bold;">CStr</span>(strVar))

<span style="color: rgb(63, 127, 89);">' Мой (ну почему только мой?!) фирменный финт:</span>
<span style="color: rgb(63, 127, 89);">' заменяем запятую на точку, позволяя пользователю</span>
<span style="color: rgb(63, 127, 89);">' использовать любой из этих знаков</span>
strFormula = Replace(strFormula, <span style="color: rgb(42, 0, 255);">&quot;,&quot;</span>, <span style="color: rgb(42, 0, 255);">&quot;.&quot;</span>)

<span style="color: rgb(63, 127, 89);">' Вычисляем все с помощью функции Evaluate.</span>
<span style="color: rgb(63, 127, 89);">' Конструкция выглядит загадочно, но только так я</span>
<span style="color: rgb(63, 127, 89);">' добился от этой функции стабильной работы.</span>
<span style="color: rgb(63, 127, 89);">' Что она там себе думает, не знаю.</span>
sheetFormula = Evaluate(<span style="color: rgb(127, 0, 85); font-weight: bold;">CStr</span>(strFormula) + <span style="color: rgb(42, 0, 255);">&quot;+0&quot;</span>)

<span style="color: rgb(127, 0, 85); font-weight: bold;">End</span> <span style="color: rgb(127, 0, 85); font-weight: bold;">Function</span>
</pre>
<p>Теперь можно попросить пользователя в одной ячейке вбить значение переменной, в другой &mdash; формулу, а результат использовать по всей книге.</p>
<p>Между прочим, кого-то из вас поджидает <a href="http://blograbota.ru">вакансия в Проф-Медиа Business Solutions</a>. Кого?</p>
<p>Также читайте всю <a href="http://doitq.ru/stati/seriya-postov-po-vba/">серию постов по <b>VBA</b></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2008/08/26/vba-excel-formula-zadannaya-strokoj/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PowerPro:</title>
		<link>http://doitq.ru/2007/12/10/powerpro-otobrazhenie-nazvaniya-kompozitsii/</link>
		<comments>http://doitq.ru/2007/12/10/powerpro-otobrazhenie-nazvaniya-kompozitsii/#comments</comments>
		<pubDate>Sun, 09 Dec 2007 21:41:33 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[Автоматизация]]></category>

		<guid isPermaLink="false">http://doitq.ru/2007/12/10/powerpro-otobrazhenie-nazvaniya-kompozitsii/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2007/12/10/powerpro-otobrazhenie-nazvaniya-kompozitsii/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PowerPro:</title>
		<link>http://doitq.ru/2007/11/14/powerpro-sozdaem-ikonku-diska/</link>
		<comments>http://doitq.ru/2007/11/14/powerpro-sozdaem-ikonku-diska/#comments</comments>
		<pubDate>Wed, 14 Nov 2007 19:41:08 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[Автоматизация]]></category>

		<guid isPermaLink="false">http://doitq.ru/2007/11/14/powerpro-sozdaem-ikonku-diska/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2007/11/14/powerpro-sozdaem-ikonku-diska/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>VBA.CorelDraw: Как повернуть кучу фигур</title>
		<link>http://doitq.ru/2007/09/27/vbacoreldraw-kak-povernut-kuchu-figur/</link>
		<comments>http://doitq.ru/2007/09/27/vbacoreldraw-kak-povernut-kuchu-figur/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 18:28:52 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[Автоматизация]]></category>

		<guid isPermaLink="false">http://doitq.ru/2007/09/27/vbacoreldraw-kak-povernut-kuchu-figur/</guid>
		<description><![CDATA[Признаться, не люблю Corel Draw. Но вынужден иногда в этой программе работать. И здесь, как никогда, требуется обработка напильником. Вот скрипт, написанный на днях, который поворачивает каждый из выделенных объектов на 180 градусов. Заметьте: каждый по отдельности. Все скопом можно легко повернуть, выделив их и введя новый угол в соответствующее поле на панели, но в [...]]]></description>
			<content:encoded><![CDATA[<p>Признаться, не люблю Corel Draw. Но вынужден иногда в этой программе работать. И здесь, как никогда, требуется обработка напильником. Вот скрипт, написанный на днях, который поворачивает каждый из выделенных объектов на 180 градусов. Заметьте: каждый по отдельности. Все скопом можно легко повернуть, выделив их и введя новый угол в соответствующее поле на панели, но в этом случае они будут вращаться относительно общей оси. Стандартного способа повернуть объекты каждый вокруг своего центра, не сдвигая их, я не нашел. Возможно, плохо искал, тем не менее скрипт.</p>
<pre><span style="color: #3f7f59">' Поворот выделенных объектов по отдельности на 180 градусов</span>

<span style="font-weight: bold; color: #7f0055">Sub</span> Rotate180()
<span style="font-weight: bold; color: #7f0055">Dim</span> sh <span style="font-weight: bold; color: #7f0055">As</span> Shape
<span style="font-weight: bold; color: #7f0055">Dim</span> centerX <span style="font-weight: bold; color: #7f0055">As</span> <span style="font-weight: bold; color: #7f0055">Double</span>, centerY <span style="font-weight: bold; color: #7f0055">As</span> <span style="font-weight: bold; color: #7f0055">Double</span>

<span style="color: #3f7f59">' Перебираем все shape в выделении</span>
<span style="font-weight: bold; color: #7f0055">For</span> <span style="font-weight: bold; color: #7f0055">Each</span> sh In ActiveSelection.Shapes
    <span style="font-weight: bold; color: #7f0055">With</span> sh

        <span style="color: #3f7f59">' Ищем центральную точку, вокруг которой будем вращать</span>
        centerY = (.TopY - .BottomY) / 2 + .BottomY
        centerX = (.RightX - .LeftX) / 2 + .LeftX

        <span style="color: #3f7f59">' Вращаем</span>
        .RotateEx 180, centerX, centerY

    <span style="font-weight: bold; color: #7f0055">End</span> <span style="font-weight: bold; color: #7f0055">With</span>
<span style="font-weight: bold; color: #7f0055">Next</span>

<span style="font-weight: bold; color: #7f0055">End</span> <span style="font-weight: bold; color: #7f0055">Sub</span>
</pre>
<p>Не забывайте про возможность поиграть с группировкой. Если при повороте нужно сохранить положение нескольких фигур относительно друг друга, их можно сгруппировать, и только потом поворачивать. Или вернуться к полю ввода угла, — как вам удобнее.</p>
<p>Также читайте всю <a href="http://doitq.ru/stati/seriya-postov-po-vba/">серию постов по <b>VBA</b></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2007/09/27/vbacoreldraw-kak-povernut-kuchu-figur/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VBA: Фальсификация результатов наблюдений в Excel</title>
		<link>http://doitq.ru/2007/09/15/vba-falsifikatsiya-rezultatov-nablyudeniy-v-excel/</link>
		<comments>http://doitq.ru/2007/09/15/vba-falsifikatsiya-rezultatov-nablyudeniy-v-excel/#comments</comments>
		<pubDate>Sat, 15 Sep 2007 18:48:11 +0000</pubDate>
		<dc:creator>Павел Рындин</dc:creator>
				<category><![CDATA[MS Office]]></category>
		<category><![CDATA[Автоматизация]]></category>

		<guid isPermaLink="false">http://doitq.ru/2007/09/15/vba-falsifikatsiya-rezultatov-nablyudeniy-v-excel/</guid>
		<description><![CDATA[Посмотрим, как делать собственные функции в дополнение к встроенным в Excel.
Предположим, у нас есть таблица с двумя столбиками с парами взаимосвязанных параметров. Понаблюдали мы раз десять за чем там надо наблюдать, записали результаты, увидели, что зависимость линейная, и стало нам лень остальные двести измерений делать. Первый столбик мы заполним от балды, введем какой-нибудь коэффициент, а [...]]]></description>
			<content:encoded><![CDATA[<p>Посмотрим, как делать собственные функции в дополнение к встроенным в Excel.</p>
<p>Предположим, у нас есть таблица с двумя столбиками с парами взаимосвязанных параметров. Понаблюдали мы раз десять за чем там надо наблюдать, записали результаты, увидели, что зависимость линейная, и стало нам лень остальные двести измерений делать. Первый столбик мы заполним от балды, введем какой-нибудь коэффициент, а для второго значения напишем функцию.</p>
<p>Примерно такую:</p>
<p><span style="color: #3f7f59">' Очень-очень хитрая функция<br />
' аргументы:<br />
' myValue - значение (целое)<br />
' coefficient - коэффициент (вещественное)<br />
' функция возвращает значение типа variant для того,<br />
' чтобы мы могли запихать туда сообщение об ошибке</span><br />
<span style="font-weight: bold; color: #7f0055">Function</span> Falshivka(myValue <span style="font-weight: bold; color: #7f0055">As</span> <span style="font-weight: bold; color: #7f0055">Integer</span>, _<br />
coefficient <span style="font-weight: bold; color: #7f0055">As</span> <span style="font-weight: bold; color: #7f0055">Double</span>) <span style="font-weight: bold; color: #7f0055">As</span> <span style="font-weight: bold; color: #7f0055">Variant</span><br />
<span style="color: #3f7f59">' вводим переменную для промежуточных расчетов</span><br />
<span style="font-weight: bold; color: #7f0055">Dim</span> Res <span style="font-weight: bold; color: #7f0055">As</span> <span style="font-weight: bold; color: #7f0055">Double<br />
</span><br />
<span style="color: #3f7f59">' сердце и мотор функции - вычисление</span><br />
Res = myValue * coefficient</p>
<p><span style="color: #3f7f59">' а теперь разбодяжим слишком правильный результат.</span><br />
<span style="color: #3f7f59">' инициализируем генератор случайных чисел</span><br />
<span style="font-weight: bold; color: #7f0055">Randomize</span></p>
<p><span style="color: #3f7f59">' и используем его (функция rnd вернет случайное<br />
' число от 0 до 1)</span><br />
<span style="color: #3f7f59">' таким образом мы получим некоторой разброс<br />
' вокруг вычисленного значения</span><br />
Res = Res + (<span style="font-weight: bold; color: #7f0055">Rnd</span> - 0.5) * (Res * 0.3)</p>
<p><span style="color: #3f7f59">' для интереса предположим, что при исходном<br />
' значении больше нуля, результат тоже обязан<br />
' быть положительным и ненулевым. Проверим это</span><br />
<span style="font-weight: bold; color: #7f0055">If</span> myValue &gt; 0 And (Res &lt; 0 Or Res = 0) <span style="font-weight: bold; color: #7f0055">Then</span><br />
<span style="color: #3f7f59">   ' ай, не повезло! придется выводить сообщение<br />
' </span><span style="color: #3f7f59">об ошибке, да текстовое,</span><br />
<span style="color: #3f7f59">' чтобы заметно было, а потом - ручками, ручками...</span><br />
Falshivka = <span style="color: #2a00ff">"-= 0 =-"</span><br />
<span style="font-weight: bold; color: #7f0055">Else</span><br />
<span style="color: #3f7f59">' все. Присваиваем функции правильный результат.</span><br />
<span style="color: #3f7f59">' Просто пишем имя нашей функции, знак «равно» и то,<br />
' что она должна вернуть.</span><br />
Falshivka = Res<br />
<span style="font-weight: bold; color: #7f0055">End</span> <span style="font-weight: bold; color: #7f0055">If<br />
End</span> <span style="font-weight: bold; color: #7f0055">Function</span></p>
<p>Помните, что случайные значения Rnd вовсе не случайны! Было время, я наблюдал повторяющиеся последовательности среди чисел, что она выдает.</p>
<p>Вот так ненавязчиво можно обмануть доверившихся вам людей. Не делайте этого! Такой примитивный и безграмотный обман быстро откроется. Зато мы создали собственную функцию, ничем не хуже встроенной. Теперь в любой ячейке можно вбить «=falshivka()», и в скобках подставить ссылки на ячейки с нужными данными.</p>
<p>Не палите меня, ладно?</p>
<p>Также читайте всю <a href="http://doitq.ru/stati/seriya-postov-po-vba/">серию постов по <b>VBA</b></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://doitq.ru/2007/09/15/vba-falsifikatsiya-rezultatov-nablyudeniy-v-excel/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

