- ベストアンサー
エクセルで「名前を付けて保存」を自動的に名前を付けて保存したい
エクセルで「名前を付けて保存」をする時に自動的に名前を付けて保存が出来るように出来ないでしょうか。 エクセルで見積書を作成後に「名前を付けて保存」→「受注番号入力」をしているので、これを「名前を付けて保存」をクリックした時にファイル名を自動的に受注番号が入れば少しでも時間短縮が出来るかと思い、相談させていただきます。 自分なりに参考書などを読み、下記のようになると思ったのですが、出来ません。 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If SavaAsUI Then Application.EnableEvents = False Application.Dialogs(xlDialogSaveAs).Show _ Arg1:=Me.Path & Application.PathSeparator & Sheet(1).Range("A1").Value Application.EnableEvents = True Cancel = True End If End Sub シート1に見積書があり、シート2、シート3はありません。 「A1」のセルに受注番号が入っています。 これのどこがダメなのか教えてもらえませんか。 もし、他に方法があるのであれば教えていただけませんか。 ご無理申します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Application.Dialogs(xlDialogSaveAs).Show _ Arg1:=Me.Path & Application.PathSeparator & Sheets(1).Range("A1").Value End Sub 上記でどうでしょう
その他の回答 (2)
- zap35
- ベストアンサー率44% (1383/3079)
既に解決しているかもしれませんがコモンダイアログを出さなくてもよいのではないでしょうか? Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Application.EnableEvents = False On Error GoTo end0 MsgBox "このブックを" & Sheets("Sheet1").Range("A1").Value & ".xlsとして保存します" ThisWorkbook.SaveAs Me.Path & Sheets("Sheet1").Range("A1").Value & ".xls" end0: Application.EnableEvents = True Cancel = True End Sub
お礼
お返事が遅くなり申し訳ありません。 いろいろな方法を教えていただき、ありがとうございます。
- htmcr
- ベストアンサー率36% (11/30)
たしかにそのままでは不便ですね では、VBAをユーザー設定ボタンから読み込む方式にしては いかがでしょう 'ボタンから呼び出すVBA Public Sub SaveBook() Application.Dialogs(xlDialogSaveAs).Show _ Arg1:=Me.Path & Application.PathSeparator & Sheets(1).Range("A1").Value End Sub これを記述して保存後、下記のサイトを参考にして このプロシージャを呼び出すボタンを作成してください。 ボタンによるマクロの実行 http://www.officepro.jp/excelmacro/run/index2.html
お礼
お返事が遅くなり申し訳ありません。 大変助かりました。 まだまだ知らない事が多く、大変勉強になります。 ありがとうございます。
お礼
ありがとうございます。 試したところ、出来ました。 助かりました。
補足
htmcr さん すみませんが教えてもらえませんか。 この通りに入力すると、上書き保存の時にも「名前を付けて保存」と出り、名前を付けて保存の時には2回出ます。 対処方法を教えてもらえませんか。 申し訳ありません。