Excelのシートを削除するには?

解決


さばたん  2003-08-02 08:30:20  No: 4294

お世話になります。

Excelのシートの削除についてなのですが、

procedure TForm1.Button1Click(Sender: TObject);
var
    Excel: Variant;
    WorkBook: Variant;
    WorkSheet: Variant;
    Aftertmp: Variant;
begin

    Excel := CreateOleObject('Excel.Application');
    WorkBook := Excel.Workbooks.Add;

    while Workbook.sheets.count < 3 do
    begin
        Workbook.sheets.add;
    end;

    Aftertmp := WorkBook.WorkSheets[Workbook.sheets.count];
    WorkBook.WorkSheets[1].Copy( ,Aftertmp);

    WorkSheet := WorkBook.WorkSheets[4];
    WorkSheet.name := 'hoge';

    Workbook.sheets[2].delete;  //※

    Excel.Visible := True;

end;

このコードより作成されたシートは
  Sheet1 、 Sheet3 、 hoge
でした。
※の部分で、「シートの削除確認」ダイアログが出てきたのですが
これを出さないようにする方法はあるのでしょうか?
(シートは削除されてOKです)

また、そのExcelにて、キーボードの矢印でセルを移動しようとすると
ページごとに動いてしまいます。
この解消法はありますか?

ご存知の方がいましたら、どうぞお願い致します。


kazu  2003-08-02 18:28:07  No: 4295

>※の部分で、「シートの削除確認」ダイアログが出てきたのですが
>これを出さないようにする方法はあるのでしょうか?
この部分だけ。
WorkSheet := WorkBook.WorkSheets[2];
Excel.Application.DisplayAlerts := False;
WorkSheet.Delete;
Excel.Application.DisplayAlerts := True;

>また、そのExcelにて、キーボードの矢印でセルを移動しようとすると
>ページごとに動いてしまいます。
ページごとって?シートってことですかね。


さばたん  2003-08-04 20:02:16  No: 4296

kazuさん、出来ました!
ありがとうございます。

変な動きをしていた現象は起きなくなりました。
"ScrollLock"キーを押した状態になっていたようです。。
気付かないうちにキーを押してしまった可能性が濃厚ですが
他の要因もあるかもしれないので少し調べてみようと思います。

とてもありがとうございました。


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

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






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