Основы офисного программирования и язык VBA


Macrorecorder - часть 3


A1 = 1; A2 = 2; A k= A k-1 + A k-2; k = 3…N;


увеличить изображение
Рис. 1.11. 

Вот как мы решали эту задачу вручную ( рис. 1.11). Вначале вызвали Macrorecorder, выбрав в меню Tools пункт Macro, затем - Record New Macro (проще щелкнуть кнопку начала записи макроса, если она есть на панели). В появившемся диалоговом окне задали имя макроса - Fibonachi. Заметьте: появляется кнопка окончания записи макроса, если ее не было на соответствующей панели. Теперь наши дальнейшие действия будут транслироваться в соответствующую программу. В ячейку А1 мы записали текст "Числа Фибоначчи", в ячейки А2 и А3 - числа 1 и 2, в ячейку А4 - формулу "= А2+А3", а затем скопировали эту формулу до ячейки А20 включительно. По ходу копирования формула пересчитывалась, и в ячейках появлялись значения, соответствующих чисел Фибоначчи. Затем мы, щелкнув кнопку, выключили запись макроса. Результаты действий - на рис. 1.7. Созданный Macrorecorder макрос Fibonachi теперь доступен, и его можно вызывать в любой момент. Вот его текст:

Sub Fibonachi() ' ' Fibonachi Macro ' Macro recorded 28.02.1999 by Vladimir Billig

Selection.Font.Bold = True ActiveCell.FormulaR1C1 = "Числа Фибоначчи" Range("A2").Select ActiveCell.FormulaR1C1 = "1" Range("A3").Select ActiveCell.FormulaR1C1 = "2" Range("A4").Select ActiveCell.FormulaR1C1 = "=R[-2]C+R[-1]C" Selection.AutoFill Destination:=Range("A4:A20"), Type:=xlFillDefault Range("A4:A20").Select End Sub

В созданном макросе используются уже известные нам объекты: Range, Selection, ActiveCell и метод Select объекта Range. В комментариях нуждается свойство ячеек Excel - FormulaR1C1, - позволяющее связать с ячейкой значение или формулу (для ячейки А4), заданную в относительных координатах R (Row - строка) и C (Column - столбец). Отсчет координат ведется от активной ячейки, поэтому для ячейки А4 формула "=А2 +А3" в этих координатах принимает вид: "=R[-2]C+R[-1]C ".


Начало  Назад  Вперед



Книжный магазин