FAQ VCL
Работа с MS Office\Word

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как скрать/показать столбец/диапазон столбцов?

var
  E: OleVariant;

// Столбец
procedure TForm1.Button1Click(Sender: TObject);
begin
   // Скрыть
   E.ActiveSheet.Columns[2].EntireColumn.Hidden := True;
   // Показать
   E.ActiveSheet.Columns[2].EntireColumn.Hidden := False;
end;

// Диапазон столбцов
procedure TForm1.Button2Click(Sender: TObject);
begin
   // Скрыть
   E.ActiveSheet.Range['B:C'].EntireColumn.Hidden := True;
   // Показать
   E.ActiveSheet.Range['B:C'].EntireColumn.Hidden := False;
end;


Как скрать/показать строку/диапазон строк?

var
  E: OleVariant;

// Строка
procedure TForm1.Button1Click(Sender: TObject);
begin
   // Скрыть
   E.ActiveSheet.Rows[2].EntireRow.Hidden := True;
   // Показать
   E.ActiveSheet.Rows[2].EntireRow.Hidden := False;
end;

// Диапазон строк
procedure TForm1.Button2Click(Sender: TObject);
begin
   // Скрыть
   E.ActiveSheet.Range['2:3'].EntireRow.Hidden := True;
   // Показать
   E.ActiveSheet.Range['2:3'].EntireRow.Hidden := False;
end;


Как вставить строку/несколько строк?

var
  E: OleVariant;

// Вставить одну строку перед строкой 2
procedure TForm1.Button1Click(Sender: TObject);
begin
   E.ActiveSheet.Rows[2]{.EntireRow}.Insert;
end;

// Вставить 10 строк перед строкой 2
procedure TForm1.Button2Click(Sender: TObject);
begin
   // Способ первый
   E{.ActiveSheet}.Rows['2:11']{.EntireRow}.Insert;
   // Способ второй
   E{.ActiveSheet}.Range['A2:A11'].EntireRow.Insert;
   // Способ третий
   E{.ActiveSheet}.Cells[2, 1].Resize[10].EntireRow.Insert;
end;


Как вставить колонку/несколько колонок?

var
  E: OleVariant;

// Вставить одну колонку перед колонкой 2
procedure TForm1.Button1Click(Sender: TObject);
begin
   E.ActiveSheet.Columns[2]{.EntireColumn}.Insert;
end;

// Вставить 10 колонок перед колонкой 2
procedure TForm1.Button2Click(Sender: TObject);
begin
   // Способ первый
   E{.ActiveSheet}.Columns['B:K']{.EntireRow}.Insert;
   // Способ второй
   E{.ActiveSheet}.Range['B1:K1'].EntireColumn.Insert;
end;


Как добавить гиперссылку?

// Способ первый
uses
  {...,} ComObj;

var
  E, B: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   E := CreateOleObject('Excel.Application');
   B := E.Workbooks.Add;

   B.Sheets[1].Hyperlinks.Add(E.Range['A7', EmptyParam], 'http://decoding.dax.ru',
      EmptyParam, 'Мой'#10'сайт!', 'Decoding');

   E.Visible := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   if not VarIsEmpty(E) then
   begin
      B.Close;
      B := Unassigned;
      E.Quit;
      E := Unassigned;
   end;
end;

// Способ второй
var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   E.ActiveSheet.Hyperlinks.Add(E.ActiveSheet.Range['A10'],
      'http://www.decoding.dax.ru/', EmptyParam,
      'Материалы по программированию'#10'на Delphi',
      'Decoding');
end;


Как добавить гиперссылку для рисунка?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
var
  Pic: OleVariant;
begin
   E.ActiveSheet.Range['A10'].Select;
   Pic := E.ActiveSheet.Pictures.Insert('d:\favicon.ico');

   E.ActiveSheet.Hyperlinks.Add(Pic.ShapeRange.Item(1),
      'http://www.decoding.dax.ru/', EmptyParam,
      'Материалы по программированию'#10'на Delphi',
      'Decoding');
end;


Как отредактировать гиперссылку?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
var
  hl: OleVariant;
begin
   hl := E.ActiveSheet.Hyperlinks.Item[1];
   hl.Address := 'http://www.ya.ru/';
   hl.ScreenTip := 'Yandex';
   // С редактированием поля TextToDisplay нужно быть
   // осторожнее! Если гиперссылка является рисунком,
   // обращение к этому полю вызовет ошибку!
   hl.TextToDisplay := 'Поиск в Yandex';
end;


Как удалить гиперссылку?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   // удалим гиперссылку - останется только тект,
   // указанный в TextToDisplay
   E.ActiveSheet.Hyperlinks.Item[1].Delete;
end;


Как удалить все гиперссылки в диапазоне ячеек?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   E.ActiveSheet.Range['A:A'].ClearHyperlinks;
end;


Как узнать количество гиперссылок на листе?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowMessage(E.ActiveSheet.Hyperlinks.Count);
end;

При использовании материала - ссылка на сайт обязательна