Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Макросы занятие 7. Монопольные окна диалога.






    Окна диалога

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

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

    Различают два типа окон диалога: MsgBox и InputBox.

    Первое – окно сообщений. Оно может иметь разные наборы кнопок, задаваемых с помощью одной из набора констант. Например, «Да» и «Нет» (vbYesNo) или «Прервать» «Повторить» «Игнорировать» (vbAbortRetryIgnore). Константу можно не задавать, тогда окно диалога при вызове будет выведено с кнопкой ОК.

     

    VBA помогает пользователю определиться с порядком настроек окна сразу после набора инструкции MsgBox(комментарий, константа набора кнопок, наименование окна…).

    Значения, возвращаемые диалоговым окном при нажатии соответствующей кнопки:

    OK 1

    Cancel 2

    Abort 3

    Retry 4

    Ignore 5

    Yes 6

    No 7

    Таким образом мы можем присвоить переменной значение возвращаемое окном диалога, например:

    Otv=MsgBox(“Коррекция – да, Новый груз – нет”, vbYesNo, ”Ответьте! ”), где vbYesNo – константа из окна списка, предлагаемого при заполнении MsgBox. При нажатии на «Да» otv=6, «Нет» otv=7. Далее через оператор условия можно выполнить ветвление программы.

     

    Второй тип окна – окно ввода значений.

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

    переменная=InputBox(“коментарий или вопрос”[, ”заголовок”][, значение по умолчанию])

    Содержимое в квадратных скобках общепринято считать как необязательные параметры.

    Пример:

    Razmer=InputBox(“Введите размерность”, ”Окно ввода”, 7)

    В программе переменной Razmer будет присвоено значение 7 по умолчанию или измененное пользователем при нажатии на «Да» или пустое при нажатии на “Cancel”.

     

    Пример. Вызвать функцию площади круга или функцию длина окружности в диалоге.

    Sub диалог()

    радиус =InputBox(“Введите радиус круга”, ”Окно ввода”, 10)

    Otv=MsgBox(“Площадь круга – да, Длина окружности – нет”, vbYesNo, ”Ответьте! ”)

    if Otv=6 then площадь_круга(радиус) else длина_круга(радиус)

    End Sub

    Примечание. Предполагается, что вызываемые функции «площадь_круга», «длина_круга» запрограммированы и находятся в доступных модулях (см.занятие 2).

     

    Пример. По запрашиваемой размерности построить единичную треугольную матрицу.

    Sub треуг_матр1()

    Range(“A1”).Select

    Razm=InputBox(“Введите размерность матрицы”, ”Окно ввода”, 9)

    for i=1 to Razm

    for j=1 to i

    Cells(i, j)=1

    Next j

    Next i

    End Sub

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

    Пример. Начиная с активной ячейки, по запрашиваемой размерности, построить пирамидальную матрицу, причем грани пирамиды равны 1, а центральное значение – номер слоя пирамиды вида:

    1 2 1

    1 2 3 2 1

     

    Sub пирамида()

    Ns= ActiveCell.Row

    Nk= ActiveCell.Column

    Razm=InputBox(“Введите размерность пирамиды”, ””, 9)

    If Razm> Nk then

    Razm=Nk

    MsgBox “Размерность будет изменена до” + Str(Nk)+” строк”

    End If

    for i=1 to Razm

    for j=1 to i

    Cells(i+Ns-1, Nk+j -1) = i - j + 1

    Cells(i+Ns-1, Nk-j+1) = i - j + 1

    Next j

    Next i

    End Sub

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

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.