アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
エクセルで「名前をつけて保存」のマクロを作って使用していますが、
一部、改造したいところがあります。
B20セルの文字が自動でファイル名になるようにしています。
「件名:●×商店納品見積書_20090125_1326」という感じなのですが、
最初の「件名:」という文字が不要で、毎回手動で消しています。
しかし、この文字を最初から消しておくわけにはいかず、
マクロ実行時のみ「件名:」が消えるようにしたいのです。
よい方法はありますか?
どうぞよろしくお願いします。

Sub ブック保存()
Dim SaveFileName As String, re As Variant, WSH As Variant, Path As String
Set WSH = CreateObject("WScript.Shell")
Path = WSH.SpecialFolders("Desktop") & "\"
With Sheets("見積書").Range("B20")
If .Value = "" Then
MsgBox "店舗名が入力されていません", vbExclamation
Exit Sub
Else
SaveFileName = Path & .Value & "_" & Format(Now, "yyyymmdd_hhmm")
End If
End With
Set WSH = Nothing
re = Application.GetSaveAsFilename(SaveFileName)
If re = False Then
MsgBox "保存中止", vbExclamation
Else
ActiveWorkbook.SaveAs SaveFileName
MsgBox "保存OK", vbInformation
End If
End Sub

A 回答 (2件)

>SaveFileName = Path & .Value & "_" & Format(Now, "yyyymmdd_hhmm")



SaveFileName = Path & Replace(.Value,"件名:","") & "_" & Format(Now, "yyyymmdd_hhmm")

とか?
    • good
    • 0
この回答へのお礼

すばやいご回答ありがとうございます。
おかげさまでできました。

お礼日時:2009/01/25 14:37

これだけのコードが書けるレベルの方が悩まれる内容と思えません。


色々方法はあると思いますが、一例です。
確かExcel2000以降なら、Split関数を使えば簡単です。
一部だけ、関係するところを掲載します。

Dim FName As String

With Sheets("見積書").Range("B20")
  If .Value = "" Then
    MsgBox "店舗名が入力されていません", vbExclamation
    Exit Sub
  Else
    FName = Split(FName, ":")(1)
    SaveFileName = Path & FName & "_" & Format(Now, "yyyymmdd_hhmm")
  End If
End With

でどうでしょうか?
    • good
    • 0
この回答へのお礼

どうもありがとうございました。
おかげさまで解決いたしました。

お礼日時:2009/01/25 14:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!