Delphi Programming / Object Pascal
[掲載 2009年05月27日] [更新 2013年12月18日] エクセル操作フォームEx |
エクセル操作フォームEx 参考コード類
データのソート |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE Pro + Excel 2010 |
データをソート (整列) する例です.ソート対象の Range オブジェクトは OleVariant 型でないとエラーが発生してうまくいきませんでした. |
procedure TplExcelFormEx1.Button1Click(Sender: TObject);
var
ARange : OleVariant; //何故かExcelRangeでは不可
Key1Range : Txlf2000Range; //Sortの第1KeyのRangeオブジェクト
Key2Range : Txlf2000Range; //Sortの第2KeyのRangeオブジェクト
Key3Range : Txlf2000Range; //Sortの第3KeyのRangeオブジェクト
pBool : OleVariant;
begin
pBool:=False;
//第1keyはC列
Key1Range := xlfExcelSheet.Range['C5', 'C48'].EntireColumn;
//第2KeyはD列
Key2Range := xlfExcelSheet.Range['D5', 'D48'].EntireColumn;
//第3KeyはE列
Key3Range := xlfExcelSheet.Range['E5', 'E48'].EntireColumn;
//対象となる行のRangeオブジェクト.何故かExcelRangeではエラー発生
ARange := xlfExcelSheet.Range['C5', 'E48'].EntireRow;
ARange.Sort(Key1Range, //Sortの第1Key
xlAscending, //昇順
Key2Range, //Sortの第2Key
EmptyParam, //Sortの要素種類
xlDescending, //Sortの第2Keyは降順
Key3Range, //Sortの第3Key
xlAscending, //Sortの第3Keyは昇順
xlYes, //対象範囲の第1行(列)はタイトル
EmptyParam,
pBool, //大文字と小文字を区別する時はTrue
EmptyParam,
EmptyParam); //並替えの種類.xlPinYinかxlStroke
end;
|