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

解決


超々初心者  2009-08-29 03:45:27  No: 35521

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

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-29 04:46:58  No: 35522

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

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


超々初心者  2009-08-31 21:39:13  No: 35523

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

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


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

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






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