本ページには広告が含まれています。
目次
ユーザーからファイル名を取得するために、[名前を付けて保存] ダイアログ ボックスを表示します。ダイアログ ボックスで指定したファイルは、実際には保存されません。保存処理をするにはWorkbook.SaveAs メソッドを使います。
- 構文
- UString = Application.GetSaveAsFilename( InitialFilename, FileFilter, FilterIndex, Title, ButtonText )
- 引数
- InitialFilename 省略可
- 既定値として表示するファイル名を指定します。 この引数を省略すると、作業中のブックの名前が使われます。
- FileFilter 省略可
- ファイルの候補を指定する文字列(ファイルフィルター文字列)を指定します。最大長は255文字です。
- FilterIndex 省略可
- 引数FileFilterで指定したファイルフィルター文字列の中で、1から何番目の値を既定値とするかを指定します。この引数を省略するか、ファイルフィルター文字列の数より大きい数値を指定すると、最初のファイルフィルター文字列が既定値となります。
- Title 省略可
- ダイアログボックスのタイトルを指定します。この引数を省略すると既定のタイトルが使用されます。
- ButtonText 省略可
- Macintoshでのみ指定できます。
- 戻り値
- ファイル名に指定したパス。キャンセルした場合はFalseが返る。
Application オブジェクトを返すメソッド・プロパティ
- Application.GetSaveAsFilename メソッド
- Microsoft Excelアプリケーションを表すApplication オブジェクトを返します。
ダイアログボックスの初期フォルダ
ダイアログボックスの初期フォルダは、以下のプログラムで取得できます。
PRINT Excel.Application.DefaultFilePath
プログラム実行例
[名前を付けて保存]ダイアログを表示して保存
[名前を付けて保存]ダイアログを表示し、既定値として売上一覧.xlsxという名前を指定します。
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Add()
DIM path = Excel.Application.GetSaveAsFilename("売上一覧.xlsx", "Excel ブック, *.xlsx, すべてのファイル, *.*")
IFB path = FALSE THEN
PRINT "キャンセルされました"
ELSE
Excel.ActiveWorkbook.SaveAs(path)
ENDIF
使用関数
解説
[名前を付けて保存]ダイアログを表示して保存(同名ファイルの競合対策)
GetSaveAsFilenameの第一引数(InitialFilename)で重複しないファイル名を既定値として入力します。
SaveAsでファイル名が重複する場合置き換えますか?でいいえを選択するとエラーが発生するので、その際は再度ファイル名を入力するダイアログボックスを表示する。
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Add()
DIM folderspec = Excel.Application.DefaultFilePath
DIM filename = Excel.ActiveWorkbook.Name
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
path = uniqueFilename(FSO.BuildPath(folderspec , filename + ".xlsx"))
REPEAT
path = Excel.Application.GetSaveAsFilename(FSO.GetFileName(path), "Excel ブック,*.xlsx")
IFB path = FALSE THEN
PRINT "キャンセルされました。"
ELSE
TRY
PRINT Excel.ActiveWorkbook.SaveAs(path)
EXCEPT
CONTINUE
ENDTRY
ENDIF
UNTIL TRUE
//////////////////////////////////////////////////
// 【引数】
// path : ファイルのパス
// 【戻り値】
// 重複しないファイル名
//////////////////////////////////////////////////
FUNCTION uniqueFilename(path)
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
IFB FSO.FileExists(path) THEN
DIM fol = FSO.GetParentFolderName(path)
DIM filename = FSO.GetBaseName(path)
DIM extension = FSO.GetExtensionName(path)
DIM i = 2
WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension))
i = i + 1
WEND
RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension)
ELSE
RESULT = path
ENDIF
FEND
使用関数
関連記事
- XLOPEN関数 (スクリプト関数)
- XLOPEN関数は、Excelまたは OOoのCalcを起動する関数です。第一引数に読み込むファイル名(新規の場合は省略)、第二引数に起動フラグ、第三引数以降にパラメータ(パスワードや読み込み専用)を指定します。
- XLSETDATA関数 (スクリプト関数)
- Excelのセルに値を代入します。
- XLSHEET関数 (スクリプト関数)
- PageSetup オブジェクト
- Excel のシートの印刷設定を表すオブジェクトです。シートの用紙サイズ、余白、方向、印刷タイトルなど、印刷に関連する設定を管理するのに使用されます。
- Application オブジェクト
- Excel全体を表すオブジェクトです。Excel全体に対しての操作、設定変更をしたい場合に使います。
- Border オブジェクト
- 上下左右一つひとつの罫線を表します。
- Characters オブジェクト
- オブジェクトに含まれる文字列の文字を表します。
- Charts オブジェクト
- 指定されたブックまたは作業中のブックにあるすべてのグラフシートのコレクションです。
- Comment オブジェクト
- セルに関連付けられたコメントを表します。
- FullSeriesCollection オブジェクト
- グラフのデータ系列を表すコレクション。