Excelのシート名を取得するには

解決


超々初心者  2009-08-28 18:45:27  No: 35521  IP: 192.*.*.*

はじめて質問させて頂きます。
質問内容が不明瞭でしたら申し訳ございません。

WindowsXP、Delphi7を使用しています。


現在、以下のようなソースを書いています。

var
  ExcelApp   : Variant;
  ExcelBook  : Variant;
  ExcelSheet : Variant;
begin
  ExcelApp := CreateOleObject('Excel.Application');  //エクセルを開く
  ExcelBook := ExcelApp.WorkBooks.Open(sFile, False);//ファイル名
  ExcelSheet := ExcelBook.WorkSheets['Sheet1'];    //シート名

上記では「Sheet1」というシートしか開けないようになりますが、
例えばExcelのシート名が「保存版」「入力用」「Sheet3」とある場合
その3つのシート名を取得する方法はないでしょうか?

Delphi単体で行いたい(付属以外のコンポーネントや他のソフトは使いたくない)のですが、
検索してみてもVBやVBReportを使用したものしか見つからなかったので
是非皆さんの知恵を貸して頂きたいです。

よろしくお願い致します。

編集 削除
igy  2009-08-28 19:46:58  No: 35522  IP: 192.*.*.*

以下のような感じで取得するのは、いかがですか?

for i := 1 to ExcelBook.sheets.count do
begin
    ExcelSheet := ExcelBook.Worksheets[i];
    ListBox1.Items.Add('シート名:' + ExcelSheet.Name);
end;

編集 削除
超々初心者  2009-08-31 12:39:13  No: 35523  IP: 192.*.*.*

>igy様
お早い回答、ありがとうございます。
返信が遅くなってしまって申し訳ございません。

無事、動作させることができました。
ありがとうございます。

編集 削除