指定したExcelオブジェクトのアクティブなワークブックを新しいファイル名、種類で保存します。
#Include <Excel.au3>
_ExcelBookSaveAs($oExcel, $sFilePath [, $sType = "xls" [, $fAlerts = 0 [, $fOverWrite = 0 [, $sPassword = "" [, $sWritePassword = "" [, $iAccessMode = 1 [, $iConflictResolution = 2]]]]]]])
パラメータ
$oExcel | _ExcelBookOpen()か_ExcelBookNew()の呼び出しで開かれているExcelオブジェクト |
$sFilePath | 読み込むファイルのパスとファイル名 |
$sType | [オプション]Excelの書き込み可能なファイルの種類。文字列 = "xls|csv|txt|template|html"。デフォルトは"xls" |
$fAlerts | [オプション]Excelの警告メッセージの無効/有効を設定するフラグ(0=無効、1=有効) |
$fOverWrite | [オプション]ファイルが既に存在する場合、上書きするかどうかのフラグ(0=しない、1=する) |
$sPassword | [オプション]シートを保護するためのパスワード文字列。空白の場合、パスワードを使用しません(デフォルトは空白) |
$sWritePassword | [オプション]シートを保護するための書き込みアクセス用パスワード文字列。空白の場合、パスワードを使用しません(デフォルトは空白) |
$iAccessMode | [オプション]ワークブックに設定される共有ドキュメントモード |
$xlNoChange | [オプション]現在の共有モードを維持します(デフォルト) (数値 = 1) |
$xlExclusive | [オプション]ワークブックの共有を無効にします (数値 = 3) |
$xlShared | [オプション]ワークブックの共有を有効にします (数値 = 2) |
$iConflictResolution | [オプション]ドキュメント共有時、どのように共有のコンフリクトを解決するか設定します |
$xlUserResolution | [オプション]どのように解決するかユーザーに尋ねるダイアログボックスを表示します (数値 = 1) |
$xlLocalSessionChanges | [オプション]ローカルユーザーの変更を常に優先します(デフォルト) (数値 = 2) |
$xlOtherSessionChanges | [オプション]ローカルユーザーの変更を常に拒絶します(数値 = 3) |
返し値
成功: | 1 |
失敗: | 0を返し@errorに次の値を設定します |
@error: | 1 - 指定されたオブジェクトが存在しません |
2 - 無効なファイルの種類の文字列です | |
3 - ファイルが存在し、上書きフラグが設定されていません |
注意
オリジナルのワークブックが開かれた際と同じ作業パスにのみSaveAsをおこなえます
関連
例
; ***************************************************************
; 例 1 - 既存のワークブックを開きその識別子を返す。その後、新しい名前で警告なしでファイルを保存する。
; *****************************************************************
#include <Excel.au3>
$sFilePath1 = @ScriptDir & "\Test1.xls" ;このファイルは既に存在していなければならない
$oExcel = _ExcelBookOpen($sFilePath1)
If @error = 1 Then
MsgBox(0, "Error!", "Unable to Create the Excel Object")
Exit
ElseIf @error = 2 Then
MsgBox(0, "Error!", "File does not exist - Shame on you!")
Exit
EndIf
_ExcelBookSaveAs($oExcel, @ScriptDir & "\SaveAsExample", "xls")
If Not @error Then MsgBox(0, "Success", "File was Saved!", 3)
_ExcelBookClose($oExcel, 1, 0) ;このメソッドはファイルを閉じる際に通常のプロンプトなしで変更にかかわらず保存をおこなう。
; ***************************************************************
; 例 2 - 既存のワークブックを開きその識別子を返す。その後、新しい名前で警告なしでファイルを保存する。
;
ファイルが存在する場合は上書きし、パスワードオプションで保護する。その後、パスワードによる保護を示すためにファイルを開く。
; *****************************************************************
#include <Excel.au3>
$sFilePath1 = @ScriptDir & "\Test1.xls" ;このファイルは既に存在していなければならない
$oExcel = _ExcelBookOpen($sFilePath1)
;ファイルを開く際に起きるエラーを表示
If @error = 1 Then
MsgBox(0, "Error!", "Unable to Create the Excel Object")
Exit
ElseIf @error = 2 Then
MsgBox(0, "Error!", "File does not exist - Shame on you!")
Exit
EndIf
_ExcelBookSaveAs($oExcel, @ScriptDir & "\SaveAsExample2", "xls", 0, 1, "ReadOnly") ;'SaveAsExample2.xls"として保存
If Not @error Then MsgBox(0, "Success", "File was Saved!", 3)
_ExcelBookClose($oExcel, 1, 0) ;このメソッドはファイルを閉じる際に通常のプロンプトなしで変更にかかわらず保存をおこなう。
$oExcel = _ExcelBookOpen(@ScriptDir & "\SaveAsExample2.xls", 1, False) ;パスワードによる保護を示すために先ほどのファイルを開く