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

3.3.Программа СлучайныеЧислаОформление

Модернизируем программу СлучайныеЧисла таким образом, чтобы ячейки со случайными числами были с пунктирными границами синего цвета, а сами числа были в начертании курсив. Новой программе присвоим имя СлучайныеЧислаОформление.

Этот фрагмент кода оптимально создать с помощью макрорекордера. После записи макроса и удаления строк с комментариями вы получите следующий макрос (представьте себе, сколько времени бы вам понадобилось, чтобы ввести его!):

Sub Макрос1()

Range("A1:A10").Select

Selection.Font.Italic = True

Selection.Borders(xlDiagonalDown).LineStyle = xlNone

Selection.Borders(xlDiagonalUp).LineStyle = xlNone

With Selection.Borders(xlEdgeLeft)

.LineStyle = xlDot

.Weight = xlThin

.ColorIndex = 5

End With

With Selection.Borders(xlEdgeTop)

.LineStyle = xlDot

.Weight = xlThin

.ColorIndex = 5

End With

With Selection.Borders(xlEdgeBottom)

.LineStyle = xlDot

.Weight = xlThin

.ColorIndex = 5

End With

With Selection.Borders(xlEdgeRight)

.LineStyle = xlDot

.Weight = xlThin

.ColorIndex = 5

End With

With Selection.Borders(xlInsideVertical)

.LineStyle = xlDot

.Weight = xlThin

.ColorIndex = 5

End With

With Selection.Borders(xlInsideHorizontal)

.LineStyle = xlDot

.Weight = xlThin

.ColorIndex = 5

End With

Range("A1").Select

End Sub

После работы макрорекордера желательно оставить только те строки, которые изменяют свойства объекта, установленные по умолчанию. В данном случае можно убрать 4–ю и 5-ю строки, а также строки, в которых прописана толщина границ8 (т.е. строки 8, 13, 18, 23, 28 и 33) и внутренние вертикальные границы (строки 26 – 30).

Переименовав Макрос1 в Оформление, в результате получим следующий код:

Sub Оформление()

Range("A1:A10").Select

Selection.Font.Italic = True

With Selection.Borders(xlEdgeLeft)

.LineStyle = xlDot

.ColorIndex = 5

End With

With Selection.Borders(xlEdgeTop)

.LineStyle = xlDot

.ColorIndex = 5

End With

With Selection.Borders(xlEdgeBottom)

.LineStyle = xlDot

.ColorIndex = 5

End With

With Selection.Borders(xlEdgeRight)

.LineStyle = xlDot

.ColorIndex = 5

End With

With Selection.Borders(xlInsideHorizontal)

.LineStyle = xlDot

.ColorIndex = 5

End With

Range("A1").Select

End Sub

Комментарии к программе:

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

Range(Cells(1,1),Cells(m,1)).Select

где m – количество разыгрываемых чисел – определяет номер последней строки.

В общем случае команда запишется так:

Range(Cells(n,q),Cells(m,p)).Select

где n и m – номера строк, а q и p – номера столбцов.

  1. Предположим, что выделение блока ячеек нежелательно. Тогда вместо 2-й и 3-й строк можно записать одну команду:

Range("A1:A10").Font.Italic = True

Точно так же блок (4) – (7) можно записать в следующем виде9:

With Range("A1:A10").Borders(xlEdgeLeft)

.LineStyle = xlDot

.ColorIndex = 5

End With

  1. Аналогично, ссылаясь на диапазон ячеек, можно указать лист, в котором он находится:

WorkSheets("Случ. числа").Range("A1:A10").Font.Italic _

= True

With WorkSheets("Случ. числа").Range("A1:A10"). _

Borders(xlEdgeLeft)

.LineStyle = xlDot

.ColorIndex = 5

End With

или книгу:

Workbooks("Случайные числа.xls"). _

WorkSheets("Случ. числа").Range("A1:A10").Font.Italic = True

With Workbooks("Случайные числа.xls"). _

WorkSheets("Случ. числа")Range("A1:A10"). _

Borders(xlEdgeLeft)

.LineStyle = xlDot

.ColorIndex = 5

End With

Задания:

  1. Скопируйте программу СлучайныеЧисла и назовите её СлучайныеЧислаОформление. Вставьте строки (2) – (24) из программы Оформление после 11-й строки новой программы. Протестируйте полученный код.

  2. Переименуйте Модуль2 – в Примеры. В модуле Примеры:

    1. Напишите 2 программы (ИзменениеЗаголовкаExcel и ВозвратСтандартногоЗаголовка) , одна из которых изменяет заголовок Excel на заголовок «Розыгрыш случайных чисел», а вторая возвращает его стандартное значение

    2. Оформите в виде программы СписокФайлов следующий код (вывод в таблицу списка файлов из папки C:\St):

Path = "C:\St" 'определяет папку

Файл = Dir(Path) 'возвращает имя первого файла

i = 1

While Файл <> "" 'см. 8.3 из курса лекций

Cells(i,2).Value = Файл

Файл = Dir

i = i + 1

Wend

    1. Оформите в виде программы ЗаменитьФайл проверку наличия файла Случайные числа.xls и выведите диалог о его замене.

      Path = "C:\St\Случайные числа.xls"

      Filename = Dir(Path)

      If Filename <> "" Then

      'В переменной Сообщение задается структура диалогового

      'окна:

      Сообщение = vbYesNo + vbQuestion + vbDefaultButton1

      'Выводит сообщение:

      Кнопка = MsgBox(("Файл " & Filename & _

      " уже существует. Заменить его?"), Сообщение)

      Select Case Кнопка

      Case vbYes

      MsgBox "Нажата кнопка Да!"

      Case vbNo

      MsgBox "Нажата кнопка Нет!"

      End Select

      Else

      MsgBox "Файл " & Filename & " не найден!"

      End If

    2. Напишите программу ЗапросИмени, которая запрашивает Ваше имя:

и выводит следующие сообщения:

  • - если имя задано ("Светлана")

  • - если имя не задано.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]