掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
:= で代入できないのはなぜ? (ID:16223)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
作成したクラスは以下の通りです。 -- unit ExcelAccess; interface uses SysUtils, Controls, ADODB, ExcelXP, OleCtrls ; type TExcelAccess = class private { Private 宣言 } FApp: TExcelApplication; Fbook: TExcelWorkbook; Fsheet: TExcelWorksheet; function CellsRange(cols, rows: Integer): String; procedure SetCells(cols, rows: Integer; Values: Variant); function GetCells(cols, rows: Integer): Variant; public { Public 宣言 } constructor Create(); overload; destructor Destroy; override; property Cells[ACol, ARow: Integer]: Variant read GetCells write SetCells; end; implementation constructor TExcelAccess.Create(); begin FApp := TExcelApplication.Create(nil); FBook := TExcelWorkbook.Create(nil); FSheet := TExcelWorkSheet.Create(nil); //エクセル起動 FApp.Connect; //エクセル表示 FApp.Visible[0] := True; //ブック追加 FBook.ConnectTo(FApp.Workbooks.Add(EmptyParam, 0)); //シートを ExcelWorksheetに接続 FSheet.ConnectTo(Fbook.Worksheets[1] as _Worksheet); end; destructor TExcelAccess.Destroy; begin Fsheet.Free; Fbook.Free; FApp.Free; //inherited Destroy; end; procedure TExcelAccess.SetCells(cols, rows: Integer; Values: Variant); begin Fsheet.Range[CellsRange(cols, rows), CellsRange(cols, rows)].Value2 := Values; end; function TExcelAccess.GetCells(cols, rows: Integer): Variant; begin result := Fsheet.Range[CellsRange(cols, rows), CellsRange(cols, rows)].Value2; end; function TExcelAccess.CellsRange(cols, rows: Integer): String; begin result := Char(64 + cols) + IntToStr(rows); end; end. --ここまで また、代入先では以下の処理を行っています。 -- procedure TForm1.Button1Click(Sender: TObject); var Excel: TExcelAccess; sss: Variant; begin Excel := TExcelAccess.Create(); Excel.Cells[1,1] := 'hoge'; sss := 'aaaa'; //お試しで入れてみた sss := Excel.Cells[1,1]; //←ここでなぜかUnassignedが代入されてしまう end; --ここまで
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.