Delphi4.ProでExcel2002を起動し特定のセルのフォント情報や、罫線/色等の全ての情報を他の場所にコピーしたいのですが、よく分かりません。
何方か教えて下さい。
OSはXPです。
uses Comobj;
procedure TForm1.PrintClick(Sender: TObject);
var
E_Excel : Variant;
E_Application : Variant;
E_WorkBook : Variant;
E_WorkSheet : Variant;
begin
// Excel をオープン
try
E_Excel := CreateOleObject('Excel.Application');
E_Application := E_Excel.Application;
except
on EOleSysError do begin
//起動失敗
ShowMessage('Excelが起動できません');
E_Excel := Null;
Exit;
end;
end;
E_Application.Visible := True;
E_Application.WorkBooks.Open('C:\A_C\MyData.xls'); //xlsファイルを指定
E_WorkBook := E_Application.ActiveWorkbook;
E_WorkSheet := E_Application.ActiveSheet;
// ここでセルH12からI13の情報をセルA10からB11にコピーする
//ここの処理を教えて下さい
// データをファイルに書き込む
E_WorkSheet.Cells(11,2).Value := '1234'; //セルB11にデータセット
// WorkBookの内容を保存してExcelを終了する
E_WorkBook.Saved := FALSE;
E_Application.WorkBooks.Close;
E_Excel.Quit;
E_Excel := unAssigned;
E_WorkBook := Unassigned; //変数のクリア
E_WorkSheet := Unassigned; //変数のクリア
end;
ここまでできているのに、何かエラーでも出ているのですか?
そのまんまです。
E_WorkSheet.Cells(11,2).Value :=
E_WorkSheet.Cells(10,1).Value;
//セルH12からI13の範囲を 情報別に セルA10からB11に一括コピー
E_Application.Range['H12', 'I13'].Value := E_Application.Range['A10', 'B11'].Value;
E_Application.Range['H12', 'I13'].Font.Color := E_Application.Range['A10', 'B11'].Font.Color;
↑弘法も木から落ちる...サルも筆のあやまり
>//セルH12からI13の範囲を 情報別に セルA10からB11に一括コピー
E_App.Range['A10', 'B11'].Value := E_App.Range['H12', 'I13'].Value;
E_App.Range['A10', 'B11'].Font.Color := E_App.Range['H12', 'I13'].Font.Color;
HOtaさん、情報単位ならさん、有難うございます。
コピーしたい情報は、文字だけでなく、セルのサイズや色、罫線の情報、セル接合等の指定した範囲の全ての情報を、処理したいのですが。
せめて罫線や文字サイズだけでも、コピーできないでしょうか?
// セル情報をクリップボード経由で一括コピー
E_Application.Range['H12', 'I13'].Copy;
E_Application.Range['A10'].PasteSpecial;
お世話になりますクリップボードさん、有難うございます。
一発でコピーできました。
ちなみに、セルの高さや、幅はどの様に設定するのですか?
何方か教えて下さい。
// 行の高さ、列の幅
E_Application.Rows[10].RowHeight := 20;
E_Application.Columns[2].ColumnWidth := 10;
// 範囲指定で幅,、高さセット
E_Application.Range['A10','A16'].RowHeight := 12.3;
E_Application.Range['B1','G1'].ColumnWidth := 15;
夏祭りには金魚すくいさん、有難う御座いました。
お世話になりますクリップボードさん、Excelを終了するときクリップボードにデータが残っているとメッセージが出るのですが、クリップボードのクリアの方法はあるのですか?教えて下さい。
ツイート | ![]() |