Макросы VBA Excel — Страница 28

Перестановка столбцов в двумерном массиве (функция на VBA)

Функция ArraySwapColumns позволяет переставить в нужном порядке столбцы двумерного массива.

Звонок с мобильного телефона или SIP софтфона EyeBeam из Excel

При работе с базами данных в Excel, где в ячейках присутствуют номера телефонов, порой требуется выполнять звонки по множеству номеров, указанных в таблице.

Обычно этот процесс не автоматизирован - пользователь, глядя в таблицу Excel, набирает на своём мобильном телефоне номер из очередной ячейки.

Чем это чревато - вы и сами понимаете: мало того, что пользователь теряет время, набирая номер на телефоне, так и при наборе номера возможно ошибиться, в результате чего вы потратите лишнее время и деньги.

Предлагаю вашему вниманию макрос, который позволит нажатием одной кнопки набрать номер телефона из ячейки в популярном софтфоне EyeBeam

Sub ПримерКодаДляЗвонкаИзExcel()
    ' макрос запустит программу EyeBeam, и наберёт указанный номер
    CallWithEyeBeam "8-912-3456789"
End Sub

Чтение и запись INI файлов

Функции WIF и RIF являются обёртками для WinAPI функций WritePrivateProfileString и GetPrivateProfileString, и предназначены для записи и чтения параметров из файлов конфигурации INI.

INI-файлы - это обычные текстовые файлы, предназначенные для хранения настроек программ.

Примерный вид структуры INI -файла:

; комментарий

[Section1]
var1 = значение_1
var2 = значение_2

[access]
changed=02.06.2009 08:15
[client]
name=ООО «Рога и копыта»
[files]
good=Название товара

Запуск макроса VBA по таймеру

В Excel есть инструментарий для запуска макроса по расписанию, - Application.Ontime
При помощи этого метода можно запускать макрос с заданным интервалом (например, раз в секунду)

Но есть и другой вариант, - использование объекта htmlfile:
(код надо поместить в модуль ЭтаКнига - ThisWorkbook)

Private m_TimerId As Variant
Private m_doc As Object
Const ATTRNAME = "VBATimerHandler"
 
Private Sub StartTimer()
    Const Script = "document.documentElement.getAttribute('" & ATTRNAME & "').TimerProc()"
    EndTimer
    Set m_doc = CreateObject("htmlfile")

Вывод этапов вычисления формулы в Excel

Скриншот результатов отображения промежуточных этапов вычислений формулы Excel

Пользовательская функция ParseFormula предназначена для отображения промежуточных результатов вычисления простейших формул в Excel.

 

В данной версии функции ParseFormula поддерживаются только 2 формулы: СУММ и ПРОИЗВЕД

Пример её использования - в прикреплённом файле.