|
>
>$fn = filename;
>SAVEAS;
>openfile $fn;
>
>という原始的な方法をとっていますが、これだと、
>やり直しバッファが消えるので不便です。
>良い方法がありましたら教えてください。
よい方法ではないですが、下記のようなマクロとVBスクリプトをつくって
保存したファイルを別名でコピーするとかいかが?
--- SaveCopyFile.mac ---
SAVE;
$CopyComd = "c:\\xxx\\FileSaveAs.vbs " + filename;
run $CopyComd ;
--- FileSaveAs.vbs ----
Option Explicit
Const cdlOFNOverwritePrompt = &h2
Const cdlOFNExplorer = &h80000
Const cdlOFNLongNames = &h200000
testOfnDlg
Sub testOfnDlg()
Dim fs
Dim OrgFile
Dim OrgPath
If Wscript.Arguments.Count = 0 Then
MsgBox "ファイルが不明です" , vbCritical, "ファイル保存"
Exit Sub
Else
OrgPath = Left(Wscript.Arguments(0), InStrRev(Wscript.Arguments(0),
"\") )
OrgFile = Mid(Wscript.Arguments(0), InStrRev(Wscript.Arguments(0), "
\") +1 )
End If
Dim comdlg:Set comdlg=CreateObject("MSComDlg.CommonDialog")
Dim OutFile
With comdlg
.Flags= cdlOFNOverwritePrompt Or cdlOFNExplorer Or cdlOFNLongNames
.MaxFileSize=32766
.DialogTitle="名前をつけて保存"
.Filter="全てのファイル(*.*)|*.*"
.InitDir=OrgPath
.FileName=OrgFile
.CancelError=True
On Error Resume Next
.ShowSave
If Err Then Set comdlg=Nothing:Exit Sub 'Cancel
On Error Goto 0
OutFile = .FileName
End With
Set comdlg=Nothing
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile Wscript.Arguments(0),OutFile, True
End Sub
|
|