Sub CreateExcelLabWork7()
Dim ws As Worksheet
Set ws = ActiveSheet
' Очистка листа перед созданием
ws.Cells.Clear
ws.Cells.Font.Name = "Times New Roman"
ws.Cells.Font.Size = 11
' Пункт 1.1: В ячейках A1-D1 вводим заголовки столбцов
ws.Range("A1").Value = "Номер"
ws.Range("B1").Value = "Наименование" & vbLf & "товара"
ws.Range("C1").Value = "Цена"
ws.Range("D1").Value = "Цена"
' Пункт 1.3: Форматирование заголовков (полужирный, 11 пт, по центру, в B1 в две строки)
With ws.Range("A1:D1")
.Font.Bold = True
.Font.Size = 11
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
ws.Range("B1").WrapText = True
' Пункт 1.2: Заполнение таблицы №1 (в столбец C вводим целые числа)
Dim items As Variant
items = Array( _
Array(101, "Компьютер Р5-66", 999), _
Array(102, "КомпьютерР5-100", 1500), _
Array(103, "Компьютер 486-66", 780), _
Array(104, "Компьютер 486-75", 819), _
Array(201, "Принтер лазерный ОХ", 1300), _
Array(202, "Принтер лазерный ПХ", 740), _
Array(203, "Принтер струйный ЧБ", 299), _
Array(204, "Принтер струйный Ц", 460), _
Array(301, "Монитор 14”", 220), _
Array(302, "Монитор 15”", 337), _
Array(304, "Монитор 17”", 518) _
)
Dim i As Integer
For i = 0 To 10
ws.Cells(i + 2, 1).Value = items(i)(0)
ws.Cells(i + 2, 1).HorizontalAlignment = xlLeft
ws.Cells(i + 2, 2).Value = items(i)(1)
ws.Cells(i + 2, 3).Value = items(i)(2)
Next i
' Строка 13: Курс доллара
ws.Range("A13:B13").Merge
ws.Range("A13").Value = "Курс доллара"
ws.Range("A13").HorizontalAlignment = xlCenter
ws.Range("C13").Value = 13
ws.Range("C13").NumberFormat = "0""р."""
ws.Range("C13").HorizontalAlignment = xlLeft
' Пункт 1.4: Ширина столбца B по ширине текста (+ адекватная ширина остальных столбцов)
ws.Columns("B").AutoFit
ws.Columns("A").ColumnWidth = 9
ws.Columns("C").ColumnWidth = 14
ws.Columns("D").ColumnWidth = 16
' Пункт 1.5: Формула расчета цены в рублях с абсолютной ссылкой на курс ($C$13)
ws.Range("D2:D12").Formula = "=C2*$C$13"
' Пункт 1.6: Форматы чисел для столбцов C (доллары) и D (рубли)
ws.Range("C2:C12").NumberFormat = "[$$-409] #,##0.00"
ws.Range("D2:D12").NumberFormat = "#,##0.00 ""р."""
' Пункт 1.7: Построение рамки (как на образце: внешние границы, шапка, подвал и вертикальные линии)
Dim rngTable As Range
Set rngTable = ws.Range("A1:D13")
rngTable.Borders.LineStyle = xlNone
' Внешняя рамка всей таблицы, шапки и строки с курсом доллара
rngTable.BorderAround LineStyle:=xlContinuous, Weight:=xlThin
ws.Range("A1:D1").BorderAround LineStyle:=xlContinuous, Weight:=xlThin
ws.Range("A13:D13").BorderAround LineStyle:=xlContinuous, Weight:=xlThin
' Вертикальные линии между столбцами A, B, C, D в основной части (строки 1-12)
ws.Range("A1:D12").Borders(xlInsideVertical).LineStyle = xlContinuous
ws.Range("A1:D12").Borders(xlInsideVertical).Weight = xlThin
End Sub