Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Знакомство с VBA.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
1.31 Mб
Скачать

3. Вставка рисунков в программу.

    Иногда для пояснения сути расчёта нужно добавить рисунок. Чтобы поместить рисунок на форму программы можно применить элемент управления Рисунок (Image). Важными свойствами <>(по крайней мере в нашем случае) для данного объекта являются : <>   - Picture ................../указать путь к рисунку/;

<>   - PictureSizeMode..../выбрать один из трёх вариантов/ (удобно применять вариант <>1<>-frmPictureModeStretch  рисунок подгоняется по размеру окна объекта Рисунок (Image)<>)    

        И так приступим к доработке примера нашей программы  (его можно взять из архива Primer3.rar) .  Сначала создадим рисунок , например такой :

  Открываем проект VBA c нашим примером и увеличив размеры формы программы, поместим элемент управления  <>Рисунок (Image) .          

 Установим размер объекта примерно равным размеру нашего рисунка. Переходим в окно "Свойства" и для свойства <>Picture выбираем наш рисунок. А для  <>PictureSizeMode   выбираем значение <>1<>-<>frmPictureModeStretch  .  Отрегулируем размер объекта <>Рисунок (Image) так как Вам  нужно. 

Рис.3. Рисунок для добавления.

И должно получиться примерно следующее :

Рис. 4. Добавлен рисунок с помощью элемента управления "<>Рисунок "(Image).

<>

          <>4. Элемент управления -Кнопка выбора (OptionButton).

        Иногда нужно рассчитать по длине провода его сопротивление.  И если добавить в нашу программу такую возможность, то можно будет смело завершать данный проект, т.к. основные расчётные возможности программы будут реализованы.

        Сравним две расчётные формулы :                         где :

Расчёт длины провода                       - L=S * R / p             L- длина провода (м); 

Расчёт сопротивления провода       - R=L * p / S             S- Сечение провода (мм2);

                                                                                                   R- Сопротивление провода(Ом);

                                                                                                    p- Удельное сопротивление.

Чтобы произвести расчёт сопротивления провода по длине провода достаточно изменить формулу, а переменные для ввода  расчётной величины(R) и вывода результата (L) оставить без изменения. Тогда алгоритм расчёта будет следующим:

ЕСЛИ рассчитываем длину провода по заданному сопротивлению  ТО

                    L=R *S / p , где  L -длина провода(М) ; R-сопротивление(Ом) ;

ЕСЛИ рассчитываем сопротивление  провода по заданной длине ТО

                     L=R *p / S , где  L - сопротивление(Ом); R- длина провода(М);

На форме нужно поменять пояснительные надписи и заменить рисунок как показано на Рис.5 :

Рис. 5. Пояснение изменений на форме.

Для выбора вида расчёта, в нашем случае, идеально подходят элементы управления "<>Кнопка выбора (OptionButton)" и рамка (Frame). Сделаем копию с файла "RRasch22.xls" и переименуем в "RRasch22.xls". Приступаем к доработке. Поместим на форму  Рамку и две кнопки выбора, как показано на Рис.6:

Рис. 6. Элементы управления для выбора вида расчёта.

    Изменим свойства для кнопок выбора.

Для OptionButton1  Name= Opb1

Для OptionButton2  Name=Opb2

В  процедуре UserForm_Initialize()  (в конце) допишем для данных элементов управления код инициализации:

Private Sub UserForm_Initialize()

 .. .. .. .. .. ....

 .. .. .. .. .. ....

'***** Начальные установки для "ВЫБОРА ВИДА РАСЧЁТА"

Frame1.Caption = "Что будем рассчитывать?"

Opb1.Caption = "Длину"                        ' Заголовок элемента

Opb2.Caption = "Сопротивление"    ' Заголовок элемента

Opb1.Value = True                                   ' Появится точка выбора

'*************************************************** 

End Sub

 

Значение свойства Value, для кнопки выбора, может принимать только значение True или False . При  изменении значения свойства Value происходит событие Change(). Для каждой кнопки выбора напишем код программы :

Private Sub Opb1_Click()

If Opb1.Value = True Then

Opb2.Value = False

Label3.Caption = " Длина (M)"

Label1.Caption = "Сопротивление(Ом)"

lblL.Caption = " "

Me.Caption = "Расчёт длины провода."

Else

Opb2.Value = True

End If

'***** Загрузить картинку ******

PathProecta = Application.Workbooks(1).Path & "\" '***** Определяем путь проекта *****

PPic1 = PathProecta + "R01.jpg"

Image1.Picture = LoadPicture(PPic1)

End Sub

Private Sub opb2_Change()

If Opb2.Value = True Then

Opb1.Value = False

Label1.Caption = " Длина(M)"

Label3.Caption = "Сопротивление(Ом)"

lblL.Caption = " "

Me.Caption = "Расчёт сопротивления провода."

Else

Opb1.Value = True

End If

PathProecta = Application.Workbooks(1).Path & "\" '***** Определяем путь проекта *****

PPic1 = PathProecta + "R02.jpg"

Image1.Picture = LoadPicture(PPic1)

End Sub

 

Для изменения заголовка на форме проекта нужно изменить в форме свойство Caption.

При обращении к форме применяем обращение :   

 

    Me.Caption = "Расчёт сопротивления провода."

Для изменения картинки применяем команду  LoadPicture(PPic1), путь к проекту определяем при помощи команды :Application.Workbooks(1).Path . Да приходится обращаться к  объекту Workbooks   Excel , что бы узнать местонахождение наших картинок:

                         

Рис.7. Расчёт длины провода.                     Рис. 8. Расчёт сопротивления провода.

 

 А теперь главное - код для расчётов (Добавлено всего четыре строчки !!!):

 

Private Sub cmdR_Click()

R = TransD(txtR.Value) 'ВВОД

D = TransD(txtD.Value)

'P = 0.0175 ########### ЗАКОМЕНТИРУЕМ ОПРЕДЕЛЕНИЕ КОЭФ.

'***** Р А С Ч Ё Т

S = (3.1415926 * D ^ 2) / 4

If Opb1.Value = True Then  ' Добавлено

L = S * R / P                     

Else                                        'Добавлено

L = R * P / S                      ' Добавлено

End If                                     ' Добавлено

'*****************

lblL.Caption = Format(L, "0.000") ' В Ы В О Д

End Sub

 

Проверить работу программы можно так:

 

вносим сопротивление, например 1 Ом , диаметр 0.1 мм -получаем результат L=0,449 м.

Переключаем на расчёт сопротивления и вносим ранее полученный  результат 0,449 м .

Если результат расчёта 1Ом, то всё выполнено правильно.

 

Готовый пример для данных изменений здесь :Primer4.rar

Применение Объектов Excel в проекте VBA .