Шаг 308.
VBA в MSExcel. Модель управления затратами. Приближение созданной модели к пользовательскому интерфейсу (окончание)

    На этом шаге мы закончим изучение вопросов, связанных с созданием интерфейса.

Создание удобного интерфейса

    Обратите внимание на внешний вид созданной модели (рисунок 1).


Рис.1. Таблица для расчета показателей сравнения сокращения затрат и увеличения объема продаж с позиции их влияния на величину прибыли с внедренными элементами управления

    Около 30% пространства на экране монитора занимает ненужная информация. Это панели инструментов и меню, строка формул и строка состояния, полосы прокрутки, ярлык с именем листа и заголовки строк и столбцов. В этом приложении они не нужны, но из-за них уменьшен масштаб рабочего листа для того, чтобы вся рабочая область была видна на экране. Удалив их, можно увеличить масштаб и изменить сам внешний вид приложения. Для автоматизации процесса удаления ненужных атрибутов и последующего их восстановления запишите два макроса СозданиеПриложения (рисунок 2) и ЗакрытьПриложение (рисунок 3).


Рис.2. Подпрограмма СозданиеПриложения


Рис.3. Подпрограмма ЗакрытьПриложение

    Для записи первой части подпрограммы СозданиеПриложения запишите макрос, выполнив следующую последовательность действий, предполагая что активизированы панели инструментов Стандартная и Форматирование:

    Полученный при записи макроса код VBA будет выглядеть следующим образом:

  Application.CommandBars("Standard").Visible = False
  Application.CommandBars("Formatting").Visible = False
  Application.DisplayFormulaBar = False
  Application.DisplayStatusBar = False 

    При выполнении макроса, ему каждый раз придется выполнять все операции, да и код VBA не совсем читаем. Этот недостаток устраняет инструкция With, которая выполняет последовательность инструкций над одиночным объектом или определяемым пользователем типом данных. Синтаксис инструкции:

  With объект
    [инструкции]
  End With

    Синтаксис инструкции With содержит следующие элементы:

    Инструкция With позволяет выполнить последовательность инструкций над указанным объектом, не повторяя задание имени объекта. Например, если имеется несколько свойств, которые необходимо изменить для одиночного объекта, то удобнее поместить инструкции присвоения свойств внутрь управляющей структуры With, указав ссылку на объект один раз, вместо того, чтобы ссылаться на объект при каждом присвоении его свойств.

    Применение инструкция With можете наблюдать в отредактированной подпрограмме на рисунке 2, которая дополнена строкой кода VBA и еще одной инструкцией With:

  Caption = "Модель влияния издержек и объема продаж на прибыль"

    Эта строка устанавливает свойство объекта Windows, воздействующее на все приложение, коим и является Excel. Еще раз посмотрите на рисунок 3. В заголовке приложения Excel находится текстовая строка Microsoft Excel Сравнение. Свойство Caption заменяет текст Microsoft Excel на текст Модель влияния издержек и объема продаж на прибыль.

    Объект CommandBars позволяет отображать панели инструментов и команд с помощью свойства Visible, которому могут присваиваться значения True (панель видима) или False (невидима). Свойство DisplayStatusBar управляет отображением строки состояния, а свойство DisplayFormulaBar строки формул при присвоении им значений True или False.

    Дополнительная инструкция With интересна с позиции замены строки меню на пустую строку (рисунок 2). Для этого используется метод Add. Синтаксис метода следующий

  CommandBars.Add(name, position, menuBar, temporariy)
где

    Следующая инструкция With воздействует на свойства активного открытого окна рабочего листа. Для записи этого фрагмента подпрограммы запишите макрос, для чего выполните следующие действия:

    В результате записи макроса свойствам DisplayGridlines, DisplayHeadings, DisplayOutline, DisplayZeros, DisplayHorizontalScrollBar, DisplayVerticalScrollBar и DisplayWorkbookTabs будет присвоено значение False. При необходимости подберите размер масштаба (Zoom) под ваш монитор.

    Окно рабочей книги WindowState может иметь размеры:

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

    Последняя строка относится к свойствам объекта Windows, воздействующим на всю рабочую книгу. Еще раз посмотрите на рисунок 3. В заголовке приложения Excel находится текст Microsoft Excel - Сравнение. Вот именно свойство Caption и устанавливает отображение текста имени рабочей книги. При выполнении подпрограммы создания приложения этот текст удаляется.

    Последняя строка кода подпрограммы СозданиеПриложения (рисунок 2) удаляет с помощью метода Protect меню управления рабочей книги, расположенное в левом верхнем углу окна в виде маленького значка Excel.

    Внешний вид созданного приложения показан на рисунке 5.


Рис.5. Внешний вид созданного приложения

    Для записи подпрограммы ЗакрытьПриложение (рисунок 2) можно скопировать подпрограмму, либо записать последовательность действий и произвести редактирование. Остановимся только на восстановлении свойства Caption. Для возвращения исходного текста Microsoft Excel ему присваивается значение Empty, а для текста имени рабочего листа - значение ActiveWorkbook.Name.

    Для выполнения созданных подпрограммам создайте элементы управления Переключатель.

    Полный текст этого приложения можно взять здесь.

    Подведем краткие итоги.

    В жизни довольно часто встречаются вещи, которые воспринимаются практически дословно, без проверок их на достоверность. В настоящее время, в эпоху попыток повального увлечения управлением затратами, к таким вещам относится аксиома: прибыль, полученная за счет увеличения продаж на 33% равноценна уменьшению уровня издержек на 5%. Почему и как, как правило, задумывается мало кто. Поэтому эти шаги посвящены материализации подтверждения этой теории в виде созданной простой таблицы, в которой для проверки этой аксиомы требовалось проделывать немало движений. Да и сама таблица, при ручном вводе и подборе параметров, не позволяла получить полноценное представление о многомерности этой аксиомы, которую насквозь пронизывают влияющие на друг друга параметры: рентабельность, как таковая - увеличение объема продаж - уменьшение уровня издержек - полученная дополнительная прибыль.

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

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

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

    На следующем шаге мы продолжим работу с этой моделью.




Предыдущий шаг Содержание Следующий шаг