Delphiでお手軽プログラミング

Delphiでお手軽プログラミングメニュー

トップページ⇒DelphiでExcelを操作する

DelphiでExcelを操作する

~Excelブックを作成してセルに値を入れ、書式と罫線を設定し、ファイルに保存します。



1.フォームの作成

ファイル⇒新規作成⇒Windows VCLアプリケーション -Delphi
から新規アプリを作成します。フォームにボタン1つを配置します。

2.ソースコード

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.StdCtrls ;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses system.win.comobj, ExcelXP;

procedure TForm1.Button1Click(Sender: TObject);
var ex:olevariant;
    wb:olevariant;
    ws:olevariant;
    SaveFileName:string;
begin
  //アプリケーション エクセルを作成
  ex:=CreateOleObject('excel.application');
  
  //新規ワークブックを作成する
  wb:=ex.workbooks.Add;
  
  //エクセルを表示する
  ex.visible:=True;
  
  //ブック内のシートを削除して1シートのみにする
  while wb.worksheets.count>1 do
    wb.worksheets[wb.worksheets.count].delete;

  //1つ目のシートを変数に代入
  ws:=wb.worksheets[1];

  //セルB2の値に2を入れる
  ws.range['B2'].value:=2;

  //セルC2の値に4を入れる
  ws.cells[2,3].value:=4;

  //セルD2に式 A1*B2 を入れる
  ws.cells[2,4].value:='=B2*C2';

  //セル範囲の左の罫線を設定
  ws.range['B2:D4'].Borders[xlEdgeLeft].Weight := xlThick;

  //セル範囲の上部の罫線を設定
  ws.range['B2:D4'].Borders[xlEdgeTop].LineStyle := xlDashDotDot;
  ws.range['B2:D4'].Borders[xlEdgeTop].Color:=$0000FF;//赤色
  ws.range['B2:D4'].Borders[xlEdgeTop].Weight:=xlThin;

  //セル範囲の右の罫線を設定
  ws.range['B2:D4'].Borders[xlEdgeRight].LineStyle:=LongInt(xlDashDot);
  ws.range['B2:D4'].Borders[xlEdgeRight].Color:=$00FF00;//緑色
  ws.range['B2:D4'].Borders[xlEdgeRight].Weight:=xlThin;

  //セル範囲の下の罫線を設定
  ws.range['B2:D4'].Borders[xlEdgeBottom].LineStyle:=xlContinuous;
  ws.range['B2:D4'].Borders[xlEdgeBottom].Color:=$FF0000;//青色
  ws.range['B2:D4'].Borders[xlEdgeBottom].Weight:=Longint(xlMedium);

  ws.range['B2:D4'].Borders[xlInsideVertical].LineStyle:=xlContinuous;
  ws.range['B2:D4'].Borders[xlInsideVertical].Color:=$000000;
  ws.range['B2:D4'].Borders[xlInsideVertical].Weight:=xlHairline;

  ws.range['B2:D4'].Borders[xlInsideHorizontal].LineStyle:=xlContinuous;
  ws.range['B2:D4'].Borders[xlInsideHorizontal].Color:=$777777;
  ws.range['B2:D4'].Borders[xlInsideHorizontal].Weight:=xlThin;

  //セルの書式設定を"文字"にする
  ws.range['B4:D4'].NumberFormatLocal:='@';
  //式を入れても、書式が文字なので計算しない
  ws.cells[4,2].value:='=B2+C2';

  //ファイル保存時に上書きしますか?の警告を出さないようにする
  ex.DisplayAlerts:=false;
  SaveFileName:=ExtractFilePath(Application.ExeName)+'a.xlsx';
  //ブックを保存
  wb.saveas(SaveFileName);
  ex.DisplayAlerts:=true;
  //エクセルを終了する
  ex.quit;
end;

end.



Copyright 2019 Mam