ActiveWorkbook.Saveを使う時に下記のように使うことはできますか。
1ユーザーフォームのテキストボックスに入力された文字列をファイルの先頭につける
2今日の日付を末尾につける
例
報告書.xsl
を自動的に
太郎報告書20070528.xsl
にして保存する。
ユーザーはこのことを意識しなくても自動的にやってくれるというボタンを考えています。
よろしくお願いいたします。
ActiveWorkbook.Save で実現するには保存後にブックを別名でコピーするという方法で実現できると思います。
イメージとしてはこんな感じになるのではないでしょうか?
'FileSystemObject を使用しているので以下の手順で Microsoft Scripting Runtime を参照設定してください。 '1. メニューの [ツール] -> [参照設定] '2. 開いたウィンドウから Microsoft Scripting Runtime にチェックをつける '3. OK をクリック Sub Sumple() Dim Prefix As String Dim Suffix As String Dim MyName As String Dim MyPath As String Dim FullName As String Dim Src As String Dim Dst As String Dim objFSO As FileSystemObject ' 変数初期化 FullName = ActiveWorkbook.Name MyName = Left(FullName, InStrRev(FullName, ".") - 1) MyPath = ActiveWorkbook.Path Prefix = UserForm1.TextBox1.Text Suffix = Right(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - Len(MyName)) Src = MyPath & "\" & FullName Dst = MyPath & "\" & Prefix & MyName & Format(Date, "yyyymmdd") & Suffix ' ブックの保存 ActiveWorkbook.Save ' 保存したブックを別名でコピーする Set objFSO = New FileSystemObject objFSO.CopyFile Src, Dst, True Set objFSO = Nothing End Sub
この場合ですと、保存後のブックにもマクロが残ってしまいますのでその点は注意が必要です。
また、コピー先のファイルと同名のファイルがあった場合は上書きされます。
URLはダミーです。
コメント(0件)