掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
EXCELでバリアント配列を使ったセル色の設定 (ID:45138)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になっております。 OLEでEXCELの操作を行いたいのですが、バリアント配列を使ったセル値のセットが どうもうまくいきません。 下のコードでは、特定範囲のセルの色を偶数行と奇数行でピンクと黄色に塗り分けようとしているのですが、 すべて黄色になってしまいます。 ただ、セルの値(「AAA」or「BBB」)については、きちんと偶数行と奇数行で変えることが出来ています。 こうしないとダメ、という点があればご指摘いただけないでしょうか。 よろしくお願い致します。 var ExcelObj, WorkBook, WorkSheet:OleVariant; procedure TForm1.FormCreate(Sender: TObject); begin ExcelObj := CreateOleObject('Excel.Application'); WorkBook := ExcelObj.Workbooks.Add; WorkSheet := WorkBook.WorkSheets[1]; end; procedure TForm1.Button1Click(Sender: TObject); var r, c:Integer; ValueArray, CellColorArray: OleVariant; begin ValueArray := VarArrayCreate([1, 9, 1, 5],VarVariant); CellColorArray := VarArrayCreate([1, 9, 1, 5],VarVariant); try for r := 1 to 9 do begin for c := 1 to 5 do begin //偶数行と奇数行で内容を変える if Odd(r) then begin ValueArray [r, c] := 'AAA'; CellColorArray[r, c] := 6; //黄色 end else begin ValueArray [r, c] := 'BBB'; CellColorArray[r, c] := 38; //ピンク end; end; end; WorkSheet.Range['A1:E9'].Value := ValueArray; WorkSheet.Range['A1:E9'].Interior.ColorIndex := CellColorArray; finally VarClear(ValueArray); VarClear(CellColorArray); end; //EXCELを表示 ExcelObj.Visible := True; end; procedure TForm1.FormDestroy(Sender: TObject); begin ExcelObj.DisplayAlerts := false; ExcelObj.WorkBooks.Close; ExcelObj.Quit; ExcelObj := Unassigned; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.