したいんですが、なかなか上手くいきません。
ご指導お願いします。
var
RangeCode1,RangeCode2:String;
begin
RangeCode1 := Cells.Item[ARow1,ACol1].Address;
RangeCode2 := Cells.Item[ARow2,ACol2].Address;
ExcelSheet.Range[RangeCode1,RangeCode2].AutoFill(Range[RangeCode1,RangeCode2],xlFillDefault);
カーソルどこにある?
元データのレンジとオートフィルのレンジが同じになってます。
(EXCELのメソッドで分からないことは、マクロの記録で確かめると楽かも)
マクロの確認はしています。
で、DELPHIのコード補完を見ながら、合いそうな部分に変数ぶっ込んでたんですが、書式が違うとよくわからなくて。
で、まず、
ExcelSheet.Range[RangeCode1,RangeCode1].SelectもしくはActivate
してみて、
ExcelSheet.Range[RangeCode1,RangeCode1].Autofill(Range[RangeCode2,RangeCode2],xlFillDefault);
ってしてみましたが、「AutoFillに失敗しました」が出ます。
Excelコンポーネントは使わない方の人なので、試してませんが、
ExcelSheet.Range[RangeCode1,EmptyParam].Autofill(..省略..);
ではどうですか。
ExcelSheet.Range[RangeCode1,RangeCode1].Autofill(Range[RangeCode1,RangeCode2],xlFillDefault);
こうじゃないか?
マクロからみて
Range[RangeCode1,RangeCode1].
がいらない気がしないでもない
早起きして再実験しました。
やっと通りました。
原因は、RangeCode1の設定でした。
必ず縦1方向か横1方向でないといけないのを斜め引っ張りをやってしまっていたので、エラーの原因になっていたようです。
オートフィルのコーディングは、
ExcelSheet.Range[RangeCode1,RangeCode1].Autofill(ExcelSheet.Range[RangeCode1,RangeCode2],xlFillDefault);
でいけました。
皆さんありがとうございました。
ツイート | ![]() |