Повесить условия на три кнопки MsgBox

Автор OOKapitan, 31 января 2018, 11:53

0 Пользователи и 1 гость просматривают эту тему.

OOKapitan

     Здравствуйте, друзья.
    Ну никак не получается работать в Calc без Вас.
    Помогите, пожалуйста.
    Проблема следующая: имеем MsgBox с тремя кнопками - "Да", "Нет" и "Отмена". И надо повесить на каждую из кнопок по условию. Что-то типа:
 If MsgBox("Ляля", 3 + 32, "Люлю") = Да Then тралала Else
          If нет then трулюлю Else трололо
          Endif

  Но не пойму как правильно записать данную конструкцию. Для MsgBox из двух кнопок "Да" или "Нет" конструкция выглядит буквально так, как я её только что написал выше:
  If MsgBox("Ляля", 4 + 32, "Люлю") = 6 Then тралала Else трулюлю
  Для трёх кнопок можно использовать конструкцию:
  If MsgBox("Ляля", 3 + 32, "Люлю") = 6 Then тралала Else
           If MsgBox("Ляля", 4 + 32, "Люлю") = 7 Then трулюлю Else трололо
,
но тогда MsgBox будет выскакивать дважды, а мне нужно, чтобы он выскакивал один раз. И вот никак не могу сообразить как правильно это сделать. Помогите, пожалуйста.

OOKapitan

#1
     Нашёоооооол вариант:
 Sub Test3()
 Dim a As Integer
 a = MsgBox("Ляля", 3 + 32, "Люлю")
 If a = 6 Then
 тралала
 Else If a = 7 Then
 трулюлю
 Else
 трололо
 End If
 End Sub

Но может есть вариант по красивее/проще/удобнее?
ПС: в Calc Else If надо писать раздельно. Если слитно - он не понимает.

bigor

а куда еще проще :) ну можно через Case
Sub testCase
Select Case MsgBox("Ляля", 3 + 32, "Люлю")
Case 6
Print "Ok"
Case 7
Print "No"
Case Else
Print "Xz"
End select
End Sub

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

OOKapitan

#3
Цитата: Bigor от 31 января 2018, 10:21ну можно через Case
Огромнейшее спасибо. Мне и казалось, что есть способ без объявления переменной. А ведь знал же про Сase, но непонятно почему не вспомнил. Видимо надо освежить свои знания  ;D .