• ベストアンサー

エクセル・名前を付けて保存するマクロ 不要な文字を消す方法

お世話になります。 エクセルで「名前をつけて保存」のマクロを作って使用していますが、 一部、改造したいところがあります。 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

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

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

qt8g
質問者

お礼

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

その他の回答 (1)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

これだけのコードが書けるレベルの方が悩まれる内容と思えません。 色々方法はあると思いますが、一例です。 確か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 でどうでしょうか?

qt8g
質問者

お礼

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