VBA для тех кто любит думать


VBA и Office XP - часть 114


Переведем на язык Visual Basic for Applications условие возможности отображения результата. Во-первых, все значения полей ввода должны быть числовыми. В Visual Basic for Applications есть специальная функция для проверки того, является ли та или иная строка записью числа - IsNumeric Можно, например, найти ее описание в разделе "Поиск" Справочной системы по VBA из Microsoft Office 97 по словам "строковое выражение числовое значение" - рис. 6.7.

 

06_07.bmp

Рис. 6.7. Справка по функции IsNumeric в Microsoft Office 97.

 

(В Microsoft Office 2000/XP информацию об этой функции так просто не получить, однако можно попробовать задать вопрос Мастеру ответов, например, так: "Does the expression a number?" - "Является ли это выражение числом?" В этом случае в перечне результатов поиска будет и справка по функции IsNumeric (рис.6.8).

 

06_08.bmp

Рис. 6.8. Справка по функции IsNumeric в Microsoft Office XP.

 

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

 Ее (функцию IsNumeric) и используем. Ну, а для проверки отличия от нуля значений в последних двух полях ввода используем функцию "Val", которая переводит строковое выражение в числовое, если это строковое выражение содержит в своем начале цифры (или все состоит из них).

Итак, результат существует, если

 

IsNumeric(TextBox1.Text) = True And IsNumeric(TextBox2.Text) = True And IsNumeric(TextBox3.Text) = True And IsNumeric(TextBox4.Text) = True And IsNumeric(TextBox5.Text) = True And Not Val(TextBox4.Text) = 0 And Not Val(TextBox5.Text) = 0

 

В этом случае можно осуществить подсчет по формуле:

 

rez = ((Val(TextBox1.Text) ^ 2) * Val(TextBox2.Text) * Val(TextBox3.Text)) / (Val(TextBox4.Text) * Val(TextBox5.Text))

 

и отобразить его в поле вывода результата:

 

TextBox6.Text = Str$(rez)

 




Начало  Назад  Вперед