| 
          
            
              | Delphi Programming / Object Pascal 
      [掲載 2009年05月27日] [更新 2013年12月14日] エクセル操作フォームEx
 |  
          
            
              | エクセル操作フォームEx   参考コード類 ブックのプロパティの操作
 |  
              | 動作確認等 | Windows 7 U64(SP1) + Delphi XE Pro + Excel 2010 |  
 
 
 
 
 
 
 
 
 
          
            
              | ブック,ドキュメントプロパティを取得したり設定する例です. BuiltinDocumentProperties プロパティを使用します.参考リンクの記事にプロパティのリストがありますが,使用可能な項目は Excel のバージョンによって違います.また,読み出し専用のプロパティもあります.
 |  
 
 
          
            
              |  | 図1 実行結果
 |  
 
procedure TplExcelFormEx1.Button1Click(Sender: TObject);
var
  BookProp : OleVariant;
  StrText  : String;
begin
  BookProp := xlfExcelBook.BuiltinDocumentProperties;
  BookProp.Item['Title']    := 'エクセル操作フォームEx';
  BookProp.Item['Subject']  := 'ブックのプロパティダイアログ表示';
  BookProp.Item['Company']  := '某有名株式会社';
  BookProp.Item['Author']   := '日本 太郎';
  BookProp.Item['Comments'] := 'その他' + sLineBreak + '特になし';
  //コメントの文字列を取得して表示
  strText := BookProp.Item['Comments'];
  MessageBox(Handle, PChar(StrText), '情報', MB_ICONINFORMATION);
end; 
 
 
 
 
 
 
          
            
              | ブックのプロパティダイアログを表示します. [ファイルの概要] タブに設定した内容があります.ワードのダイアログとは違い,ダイアログの起動時に表示タブを指定するプロパティ等はないようです.
 |  
 
 
          
            
              |  | 図2 プロパティ設定ダイアログ
 |  
 
procedure TplExcelFormEx1.Button2Click(Sender: TObject);
var
  pIndex : OleVariant;
  AItem  : OleVariant;
begin
  xlfSetFocusExcel;
  pIndex := xlDialogProperties;
  try
    AItem := xlfExcelApp.Dialogs.Item[pIndex];
    AItem.Show;
  except
    raise;
  end;
  xlfSetFocusExcel;
end; 
 
 
          
            
              | ブックのプロパティダイアログは,次のように,CommandBars オブジェクトの FindControl メソッドでも表示できます. |  
 
 
procedure TplExcelFormEx1.Button3Click(Sender: TObject);
var
  pType    : OleVariant;
  pID      : OleVariant;
  pTag     : OleVariant;
  pVisible : OleVariant;
begin
  pType    := EmptyParam;
  pID      := 750;
  pTag     := EmptyParam;
  pVisible := EmptyParam;
  try
    xlfExcelApp.CommandBars.FindControl(pType, pID, pTag, pVisible).Execute;
  except
  end;
  xlfSetFocusExcel;
end; 
 
 
 
 
 
 
 
 |