エクセルの質問です。

ActiveWorkbook.Saveを使う時に下記のように使うことはできますか。

1ユーザーフォームのテキストボックスに入力された文字列をファイルの先頭につける
2今日の日付を末尾につける



報告書.xsl
を自動的に

太郎報告書20070528.xsl

にして保存する。

ユーザーはこのことを意識しなくても自動的にやってくれるというボタンを考えています。

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/06/16 00:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:s-n-k No.1

回答回数27ベストアンサー獲得回数2

ポイント60pt

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はダミーです。

http://q.hatena.ne.jp

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません