Шаг 195.
Автоматизация Microsoft Excel. Печать.
Вертикальные разрывы страниц

    На этом шаге мы рассмотрим изменение положения разрывов страниц.

    Для создания и манипулирования вертикальными разрывами используются элементы коллекции VPageBreaks. Методы этой коллекции идентичны методам коллекции HPageBreaks. Рассмотрим еще одно свойство элементов коллекций VPageBreaks и HPageBreaks. Это свойство определяет положение линий разрыва и позволяет изменять его. Свойство Location является ссылкой на ячейку. Изменение ссылки с одной на другую ячейку приведет к изменению положения линии разрыва.

procedure TForm1.Button5Click(Sender: TObject);
//Перенос линий разрывов страниц
begin
  ST.HPageBreaks.Item[1].Location:=ST.Range['A5:A5'];
  ST.VPageBreaks.Item[1].Location:=ST.Range['C4:C4'];
end;

    Результат работы этой процедуры изображен на рисунке 2.


Рис.1. Добавлены горизонтальный и вертикальный разрывы.


Рис.2. Добавленные разрывы перенесены в другое место

    Вот полный текст приложения.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, Spin, ExtDlgs, ExtCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    ComboBox1: TComboBox;
    OpenDialog1: TOpenDialog;
    Button4: TButton;
    Label2: TLabel;
    ListBox1: TListBox;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  E:variant;
  ST:variant;

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта Excel и отображение окна
begin
  E:=CreateOleObject('Excel.Application');
  E.Visible:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
//Создание рабочей книги
begin
  E.WorkBooks.Add;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Открытие рабочей книги
begin
 if OpenDialog1.Execute then
    E.WorkBooks.Open(OpenDialog1.FileName);
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
//Переключение вида документа
begin
  case ComboBox1.ItemIndex of
   0:E.ActiveWindow.View:=1; //xlNormalView;
   1:E.ActiveWindow.View:=2; //xlPageBreakPreview;
  end;
end;

procedure TForm1.Button4Click(Sender: TObject);
//Добавление разрывов страницы
var
   i:integer;
begin
  //Получение ссылки на 1-й лист рабочей книги
  ST:=E.Sheets.Item[1];
//Добавление разрывов страницы
  ST.VPageBreaks.Add (Before:=E.ActiveSheet.Cells[10,2]);
  ST.HPageBreaks.Add (Before:=E.ActiveSheet.Cells[10,2]);
  ListBox1.Items.Clear;
  ListBox1.Items.Add('Горизонтальные разрывы');
  for i:=1  to ST.HPageBreaks.Count do
    ListBox1.Items.Add(IntToStr(i));
  ListBox1.Items.Add('Вертикальные разрывы');
  for i:=1  to ST.VPageBreaks.Count do
    ListBox1.Items.Add(IntToStr(i));
  ListBox1.ItemIndex:=0;
end;

procedure TForm1.Button5Click(Sender: TObject);
//Перенос линий разрывов страниц
begin
  ST.HPageBreaks.Item[1].Location:=ST.Range['A5:A5'];
  ST.VPageBreaks.Item[1].Location:=ST.Range['C4:C4'];
end;

end.
Текст этого приложения можно взять здесь (7,5 Кб).

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

    На следующем шаге мы рассмотрим объект PageSetup.




Предыдущий шаг Содержание Следующий шаг