Шаг 148.
Автоматизация Microsoft Excel. Работа с ячейками.
Заливка ячейки (окончание)

    На этом шаге мы рассмотрим задание узора заливки ячейки.

    Узор заливки определяется выбором одного из всех возможных вариантов и задается числовой константой, которая записывается в свойство Pattern. На рисунке 1 представлен пример выбора узора ячейки и его цвета, осуществленного с помощью приведенных процедур.


Рис.1. Выбор узора заливки ячейки

    Узор заливки определяется выбором одного из всех возможных вариантов и задается числовой константой, которая записывается в свойство Pattern. На рисунке 1 представлен пример выбора узора ячейки и его цвета, осуществленного с помощью приведенных в конце текста приложения процедур.

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    CheckBox1: TCheckBox;
    ComboBox1: TComboBox;
    Label2: TLabel;
    SpinEdit1: TSpinEdit;
    Label3: TLabel;
    ComboBox2: TComboBox;
    ColorDialog1: TColorDialog;
    Button3: TButton;
    Button4: TButton;
    ComboBox3: TComboBox;
    Label4: TLabel;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure ComboBox3Change(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  E:variant;
  Range:variant;
  Border: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.Edit1Exit(Sender: TObject);
//Определение области
begin
 Range:=E.ActiveSheet.Range[Edit1.Text];
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
//Выбор границы
begin
  if CheckBox1.Checked Then
    Border:=Range.Borders.Item[ComboBox1.ItemIndex+5];
end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
//Устанавливаем толщину линии границы ячейки
begin
  Border.Weight:=SpinEdit1.Value;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
//Устанавливаем тип линии границы ячейки
begin
  Case ComboBox2.ItemIndex Of
    0: Border.LineStyle:=1;     //xlContinuous
    1: Border.LineStyle:=-4115; //xlDash
    2: Border.LineStyle:=4;     //xlDashDot
    3: Border.LineStyle:=5;     //xlDashDotDot
    4: Border.LineStyle:=-4118; //xlDot
    5: Border.LineStyle:=-4119; //xlDouble
    6: Border.LineStyle:=-4142; //xlLineStyleNone
    7: Border.LineStyle:=13;    //xlSlantDashDot
  End;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Устанавливаем цвет линии границы ячейки
begin
  if ColorDialog1.Execute then
     Border.Color:=ColorDialog1.Color;
end;

procedure TForm1.Button4Click(Sender: TObject);
//Задание цвета заливки ячейки
begin
  if ColorDialog1.Execute then
    Range.Interior.Color:=ColorDialog1.Color;
end;

procedure TForm1.ComboBox3Change(Sender: TObject);
//Выбор узора заливки ячейки
begin
   case ComboBox3.ItemIndex of
     0:Range.Interior.Pattern:=15;    //xlPatternGrid
     1:Range.Interior.Pattern:=-4142; //xlPatternNone
     2:Range.Interior.Pattern:=16;    //xlPatternCrissCross
   end;
end;

procedure TForm1.Button5Click(Sender: TObject);
//Выбор цвета узора
begin
   if ColorDialog1.Execute then
     Range.Interior.PatternColor:=ColorDialog1.Color;
end;

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

    В заключение приведем перечень констант, используемых для выбора узора.

Таблица 1. Значения констант выбора узора
Константа Значение
xlPatternAutomatic -4105
xlPatternChecker 9
xlPatternCrissCross 16
xlPatternDown -4121
xlPatternGray16 17
xlPatternGray25 -4124
xlPatternGray50 -4125
xlPatternGray75 -4126
xlPatternGray8 18
xlPatternGrid 15
xlPatternHorizontal -4128
xlPatternLightDown 13
xlPatternLightHorizontal 11
xlPatternLightUp 14
xlPatternLightVertical 12
xlPatternNone -4142
xlPatternSemiGray75 10
xlPatternSolid 1
xlPatternUp -4162
xlPatternVertical -4166

    На следующем шаге мы рассмотрим пример использования изученных свойств.




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