名前 題名 ▼ akki-さん > はじめまして、akki-と申します。 > > エクセル出力コンポーネント使わせて頂こうと思い、本日ダウンロードし、 > サンプルを作ってみたのですが、 > SheetNoプロパティを使ってのシートの切替がうまくいきませんでした。 > > そこで、SetSheetNo関数を拝見しまして、一行コードを追記させて > 頂きました。 > これにより、サンプルコードも、狙い通り動作するようになりましたので、 > ご報告します。 > > お時間のありますときに、ご確認頂ければ幸いです。 > > > 具体的には、PutPosStr関数を使い > シート1に'A',シート2に'B'を出力しようとしましたが、 > 下記コードを実行すると、 > 文字列'A','B'ともにシート1に出力されてしまう状態です。 > > ☆サンプル > ----------------------------------------------------------------- > procedure TForm1.Button1Click(Sender: TObject); > begin > plXLSOut1.SheetNo := 1; > plXLSOut1.Excute; > end; > > procedure TForm1.plXLSOut1BeforeEnd(Sender: TObject); > begin > plXLSOut1.PutPosStr( 'A',2,1,'@'); > plXLSOut1.SheetNo := 2; > plXLSOut1.PutPosStr( 'B',2,2,'@'); > end; > > ----------------------------------------------------------------- > > ☆SetSheetNo関数に一行を追記 ( 『 //←☆ ここを追加 』の行 ) > ----------------------------------------------------------------- > procedure TplXLSOut.SetSheetNo(const Value: Integer); > var > hXlsID: Longint; > szSheetName: array [0..MAX_PATH-1] of Char; > begin > if (Value<>null) and (Value<>FSheetNo) then begin > if FFileCreate then begin > FSheetNo:=Value; > XlsSheetNo(FSheetNo); //←☆ ここを追加 > end else begin > if (csDesigning in ComponentState) then exit; > try > FSheetNo:=Value; > if XlsReadBook(PChar(FFilePath),hXlsID) then begin > if XlsCrt3.XlsGetSheetName(Value,szSheetName,SizeOf(szSheetName)) then begin > FNewSheetFlag:=False; > FSheetNo:=Value; > end; > end; > finally > XlsCloseBook(True); > end; > end; > end; > end; > ----------------------------------------------------------------- GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link