[保存前に再計算]の状態取得と設定変更



【オブジェクト】

  _Application

【プロパティ】

    [状態を取得]
    short object->CalculateBeforeSave

    [設定の変更]
    object->CalculateBeforeSave = short

【値】

    0        オン
    0以外    オフ

【内容】

    [ツール]-[オプション]-[計算方法]タブ-[保存前に再計算]の値取得と設定

【サンプル】

//Excelを操作するためのタイプライブラリを読みこむ(Excel2000用)
#import "C:\Program Files\Microsoft Office\Office\Mso9.dll" no_namespace rename("DocumentProperties", "DocumentPropertiesXL")   
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\Vbe6ext.olb" no_namespace   
#import "C:\Program Files\Microsoft Office\Office\excel9.olb" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces

//名前空間の設定
using namespace Excel;

//オブジェクトの定義
_ApplicationPtr pXL;

//Excelを起動
void CImp_app_CalculateBeforeSaveDlg::OnButton1() 
{
     //Excelの起動
    pXL.CreateInstance(L"Excel.Application");

    //Excelを表示
    pXL->Visible = TRUE;

    //WorkBookを新規で開く
    pXL->Workbooks->Add();
}

//状態を取得
void CImp_app_CalculateBeforeSaveDlg::OnButton2() 
{
    //[保存前に再計算]チェックボックスの状態を取得
    short Ret =    pXL->CalculateBeforeSave;

    if(Ret != 0){
        AfxMessageBox("[保存前に再計算]チェックボックスの状態は、オンです。");
    }
    else{
        AfxMessageBox("[保存前に再計算]チェックボックスの状態は、オフです。");
    }    
}

//設定を変更
void CImp_app_CalculateBeforeSaveDlg::OnButton3() 
{
    //[保存前に再計算]チェックボックスの状態を取得
    short Ret =    pXL->CalculateBeforeSave;

    if(Ret != 0){
        pXL->CalculateBeforeSave = 0;
        AfxMessageBox("[保存前に再計算]をオンからオフに変更しました。");
    }
    else{
        pXL->CalculateBeforeSave = 1;
        AfxMessageBox("[保存前に再計算]をオフからオンに変更しました。");
    }    
}

//Excelを終了
void CImp_app_CalculateBeforeSaveDlg::OnButton4() 
{
    pXL->Quit();    
}

[サンプル・ソース]