お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"Excel97を起動しVBAコードを書く"






■概要
 Excel97 を起動して、ThisWorkbook に Workbook_BeforeSave イベント
ハンドラ他を書き込みます。(Workbook を保存できなくします。)

 Form1 に Button1 を適当に配置し、Button1 の OnClick を以下のよう
にしてお試し下さい。

■注意点他
 ・uses に ComObj を追加して下さい。
 ・動作確認:Delphi4 + Excel97。
 ・関連メソッド:AddFromFile, Import。

■サンプルコード
//=====================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
  Excel97_,
  Excel97_Appli,
  Excel97_VBProject,
  Excel97_VBComponent: OleVariant;
  VBACode: WideString;
begin
  Excel97_      := CreateOleObject( 'Excel.Application' );
  Excel97_Appli := Excel97_.Application;
  Excel97_Appli.Visible := True;
  Excel97_Appli.Workbooks.Add;

  Excel97_VBProject := Excel97_Appli.VBE.ActiveVBProject;
  Excel97_VBComponent
    := Excel97_VBProject.VBComponents.Item( 'ThisWorkbook' );
  VBACode :=   'Private Sub Workbook_BeforeSave( '
             +       'ByVal SaveAsUI as Boolean, Cancel as Boolean ):'
             +   'Cancel = True:'
             + 'End Sub';
  Excel97_VBComponent.CodeModule.AddFromString( VBACode );
  VBACode :=   'Private Sub Workbook_BeforeClose( Cancel as Boolean ):'
             +   'Me.Saved = True:'
             + 'End Sub';
  Excel97_VBComponent.CodeModule.AddFromString( VBACode );
end;
//=====================================================================


                             1999/08/06(Fri) 01:04am  Fermion [KHF03264]

Original document by Fermion         氏 ID:(KHF03264)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum