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

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

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

1) Sub Макрос1()
2) Range("A1:A10").Select
3) Selection.Font.Italic = True
4) Selection.Borders(xlDiagonalDown).LineStyle = xlNone
5) Selection.Borders(xlDiagonalUp).LineStyle = xlNone
6) With Selection.Borders(xlEdgeLeft)
7) .LineStyle = xlDot
8) .Weight = xlThin
9) .ColorIndex = 5
10) End With
11) With Selection.Borders(xlEdgeTop)
12) .LineStyle = xlDot
13) .Weight = xlThin
14) .ColorIndex = 5
15) End With
16) With Selection.Borders(xlEdgeBottom)
17) .LineStyle = xlDot
18) .Weight = xlThin
19) .ColorIndex = 5
20) End With
21) With Selection.Borders(xlEdgeRight)
22) .LineStyle = xlDot
23) .Weight = xlThin
24) .ColorIndex = 5
25) End With
26) With Selection.Borders(xlInsideVertical)
27) .LineStyle = xlDot
28) .Weight = xlThin
29) .ColorIndex = 5
30) End With
31) With Selection.Borders(xlInsideHorizontal)
32) .LineStyle = xlDot
33) .Weight = xlThin
34) .ColorIndex = 5
35) End With
36) Range("A1").Select
37) End Sub

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

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

1) Sub Оформление()
2) Range("A1:A10").Select
3) Selection.Font.Italic = True
4) With Selection.Borders(xlEdgeLeft)
5) .LineStyle = xlDot
6) .ColorIndex = 5
7) End With
8) With Selection.Borders(xlEdgeTop)
9) .LineStyle = xlDot
10) .ColorIndex = 5
11) End With
12) With Selection.Borders(xlEdgeBottom)
13) .LineStyle = xlDot
14) .ColorIndex = 5
15) End With
16) With Selection.Borders(xlEdgeRight)
17) .LineStyle = xlDot
18) .ColorIndex = 5
19) End With
20) With Selection.Borders(xlInsideHorizontal)
21) .LineStyle = xlDot
22) .ColorIndex = 5
23) End With
24) Range("A1").Select
25) 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 – номера столбцов.

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

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

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

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

.LineStyle = xlDot

.ColorIndex = 5

End With

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

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 – в Примеры. В модуле Примеры:

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

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

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

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

i = 1

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

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

Файл = Dir

i = i + 1

Wend

2.3. Оформите в виде программы ЗаменитьФайл проверку наличия файла Случайные числа.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.4. Напишите программу ЗапросИмени, которая запрашивает Ваше имя:

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

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

§ Программа СлучайныеЧислаОформление - student2.ru - если имя задано ("Светлана")

§ Программа СлучайныеЧислаОформление - student2.ru - если имя не задано.

Наши рекомендации