- ベストアンサー
エクセル・名前を付けて保存するマクロ 不要な文字を消す方法
お世話になります。 エクセルで「名前をつけて保存」のマクロを作って使用していますが、 一部、改造したいところがあります。 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
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>SaveFileName = Path & .Value & "_" & Format(Now, "yyyymmdd_hhmm") SaveFileName = Path & Replace(.Value,"件名:","") & "_" & Format(Now, "yyyymmdd_hhmm") とか?
その他の回答 (1)
- xls88
- ベストアンサー率56% (669/1189)
これだけのコードが書けるレベルの方が悩まれる内容と思えません。 色々方法はあると思いますが、一例です。 確か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 でどうでしょうか?
お礼
どうもありがとうございました。 おかげさまで解決いたしました。
お礼
すばやいご回答ありがとうございます。 おかげさまでできました。