Excelで保存するとアクティブなシートが変更される?

解決


ナカシン  2005-11-08 05:02:52  No: 18513

はじめまして。Delphi7+Excel2000環境を使用しております。
CreateOleObjectでExcelを起動し、1つのブックで4つのシートを作成しそれぞれを表示させる様にウィンドウも4つ作成し、並べて表示させております。
Delphiからデータを転送し編集した後、保存(FWorkBook.SaveとFWorkBook.SaveAs(ファイル名))を実行するとウィンドウ番号1のシートがActiveなウィンドウと同じシートをActiveにしてしまいます。

いつでも4つのシートを順番が変わることなく、それぞれのウィンドウに表示させたいのですが、どのようにすればよいでしょうか?
よろしくお願いいたします。


ナカシン  2005-11-09 20:40:45  No: 18514

ナカシンです。いろいろ実験した結果ウィンドウ番号1をアクティブにすれば、シートが入れ替わらないようです。
そこで、以下のようにウィンドウをアクティブにする処理を追加したのですが、指定のウィンドウがアクティブになりません。

  FExcel := CreateOleObject('Excel.Application');
  FExcel.Visible:= True;
  FWorkBook := FExcel.WorkBooks.Open('AAA.xls');

  FWorkBook.Windows[1].Activate;

  FWorkBook.Save

ウィンドウをアクティブにするには、どのようにすればよいのでしょうか?
よろしくお願いいたします。


ナカシン  2005-11-11 03:52:49  No: 18515

解決できました。

 FWorkBook.Windows[1].Activate;   ←ウィンドウ番号ではダメ

 FWorkBook.Windows['AAA.xls:1'].Activete;  ←ブック名+ウィンドウ番号ならOK。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加