Изменение значений ячеек Excel с помощью макросов VBA

Небольшая памятка по работе с макросами VBA Excel. Для вставки в код, измените название листа и диапазон ячеек на свой.

Добавить текст к значениям (в данном случае добавить слово «add» в начале ячеек):

For Each c In Worksheets("list1").Range("F7:F44").Cells 
  c.Value = "add" + CStr(c.Value)
Next

Добавить к значениям текст из соседней ячейки справа:

For Each c In Worksheets("list1").Range("F7:F44").Cells
  c.Value = CStr(c.Value) + " " + c.Cells(1, 2).Value
Next

Вывести строку обрезанную до 6 символов:

For Each c In Worksheets("list1").Range("J3:J175").Cells
  c.Value = Left(c.Value, 6)
Next

Убрать все после первого пробела:

For Each c In Worksheets("list1").Range("J3:J175").Cells
  c.Value = CStr(c.Value) + " "
  spacePos = inStr(1, c.Value, " ")
  artLen = spacePos - 1
  c.Value = Left(c.Value, artLen)
Next

Убрать все до первого пробела, затем убрать пробелы в начале строки:

For Each c In Worksheets("list1").Range("D2:D79").Cells
  spacePos = InStr(1, c.Value, " ")
  c.Value = Mid(c.Value, spacePos)
  c.Value = LTrim(c.Value)
Next

Если здесь нет нужного вам макроса, посмотрите ещё часть 2.

Народная карта Yandex на сайт или конструктор схем проезда

Хотите поставить на свой сайт карту Yandex и указать в ней схему проезда к вашей фирме? Как говориться «проще пареной репы». С помощью web-сервиса Yandex можно создать код карты для вставки, не имея навыков программирования.
конструктор схем проезда
Чтобы использовать народную карту Yandex, достаточно выбрать соответствующую закладку вверху справа на карте. Вид карты преобразится:
народная карта
Ссылка на сервис здесь — http://api.yandex.ru/maps/tools/constructor/

Убрать отступ от картинки в IE 9

Имеется код:

<table class='bn_table' cellpadding='0' cellspacing='0' border='0'>
<tr class='bn_0'>
  <td class='bn_0_0'><img src="/design/banner-0-0.png" border="0" width="49" height="2" /></td>
  <td class='bn_1_0'><img src="/design/banner-1-0.png" border="0" width="612" height="2" /></td>
  <td class='bn_2_0'><img src="/design/banner-2-0.png" border="0" width="47" height="2" /></td>
</tr>
<tr class='bn_1'>
  <td class='bn_0_1'><img src="/design/banner-0-1.png" border="0" width="49" height="284" /></td>
  <td class='bn_1_1'><img src="/design/banner.jpg" border="0" width="612" height="284" /></td>
  <td class='bn_2_1'><img src="/design/banner-2-1.png" border="0" width="47" height="284" /></td>
</tr>
<tr class='bn_2'>
  <td class='bn_0_2'><img src="/design/banner-0-2.png" border="0" width="49" height="51" /></td>
  <td class='bn_1_2'><img src="/design/banner-1-2.png" border="0" width="612" height="51" /></td>
  <td class='bn_2_2'><img src="/design/banner-2-2.png" border="0" width="47" height="51" /></td>
</tr>
</table>

При этом большинство браузеров отображает картинки в таблице без отступов. Однако новоиспеченный IE9 отображает отступы по вертикали. Пример ниже.
IE9 отображает отступы по вертикали после картинок
Решение простое — в CSS прописываем:

.bn_table tr td img {display:block;}

И вауля — отсупы исчезают!
убрали отступ после картинки в IE9

Стрелочные часы на javascript (с помощью спрайтов)

Часы на сайт — один из скриптов, который может показаться бесполезным, так как у всех есть системные часы. Однако некоторые хотят поставить такие часы как элемент дизайна. Но эффект эксклюзивности будет достигнут, только если эти часы будут уникальными, сделанными в цветовой гамме и стиле сайта. Поэтому копировать готовые часы у кого-то чаще всего будет неуместно, лучше сделать свои. Способов довольно много:

  1. Можно сделать часы во flash, но не у всех есть среда разработки flash (вариант использования не лицензионной программы не рассматриваем).
  2. А можно сделать с помощью javascript. Правда если речь идет о стрелочных часах, то стрелки часто делаются с помощью рисования линий или точек, что не всегда красиво.
  3. Есть еще SVG — на мой взгляд за этим форматом будущее. К сожалению c кроссбраузерностью этого решения пока не все гладко.
  4. Ну и еще вариант — использовать javascript и стрелки отображаемые с помощью спрайтов. Его и рассмотрим. Способ тоже не без минусов — получается довольно большой объем файлов стрелок (3 стрелки в приведенном ниже примере занимают чуть больше 100 кбайт). Хорошо что интернет сейчас быстрый у многих 🙂 Результат изображен ниже.


Используется 5 графических элементов. Фон, логотип для часов, и 3 стрелки. Другими словами, можно легко сделать любой внешний вид стрелок и фона, используя лишь графический редактор.
Исходники примера можно скачать здесь.
С изменением фона и логотипа все просто, а как быстро и без рутины подготовить спрайты для своих уникальных стрелок, можно прочитать в посте про клонирование объектов в векторном редакторе. Впрочем, подсказка есть в исходниках — там можно заметить два файла SVG — один с одиночными стрелками, другой с клонированными (наклон с шагом 6 градусов). Для создания стрелок использовал векторный редактор Inkscape 0.48.

Горячие клавиши Windows

В Windows есть ряд горячих клавиш без которых ну как без рук (это когда привыкнешь). Жаль что не все их используют. Перечислю только те которые, на мой взгляд, самые ходовые:

  • win+d — свернуть все окна (кстати, в Windows 7 в правом нижнем углу есть маленькая кнопка на панели, правее даты и часов, которая выполняет ту же функцию)
  • win+e — открыть Проводник
  • ctrl+a — выделить все
  • ctrl+x — вырезать
  • ctrl+c — копировать
  • ctrl+v — вставить
  • ctrl+home — в начало документа
  • ctrl+end — в конец документа
  • ctrl+shift+home — выделение до начала документа
  • ctrl+shift+end — выделение до конца документа
  • ctrl+f — поиск во многих приложениях (в том числе в браузере на текущей странице, а так же, например, в файле скомпилированной справки chm)
  • ctrl+tab — переключение между закладками
  • alt+tab — переключение между приложениями

Несколько менее используемые, но тоже полезные:

  • win+r — вызвать диалог «выполнить» (например cmd — командную строку)
  • win++ (и win+-) — рассмотреть что-то мелкое с помощью экранной лупы