重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんにちは。
会社で見積書をエクセルで作っています。
会社名の入った空欄の見積書をたくさん作っておき、そこにエクセル初心者の人が入力して上書き保存という形をとりたいと思っています。
現場名はその都度変わってきますので、見積りで入力した現場名をファイル名にそのまま変更することは出来るのでしょうか?
入力する人が「名前を付けて保存」でファイル名をいちいち入力しない方法がありましたら教えてください。

A 回答 (4件)

仮に現場名がSheet1のA1に入力される場合の例です。



空欄の見積書を開き、

1.Alt+F11キーでVisualBasicEditorを呼び出します。

2.メニューから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコード()をコピペします。

3.Alt+F11キーでワークシートへもどり、一度上書き保存してください。

4.これで、ただ終了するだけで、現場名のファイルとして別名保存されるようになります。

Sub Auto_Close()

genba = Sheets("Sheet1").Range("A1") '実態に応じここを書き換えてください

ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "\" & genba & ".xls"
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
丁寧に教えて頂いたのですが、私自身もエクセル初心者なのでやってみたのですが上手く出来なかったです。

お礼日時:2006/05/01 20:27

No2です。



> 丁寧に教えて頂いたのですが、私自身もエクセル初心者なのでやってみたのですが上手く出来なかったです。

わたしの書いた手順(1~4)どおりやれば、初心者でも出来るはずなのですが。
どこがうまく出来なかったのでしょうか?
    • good
    • 0
この回答へのお礼

いろいろ試してみたのですが、普通の表でなら出来ました。ただ私が作った見積書はシートを方眼紙のようにして作った物で、現場名のセルは小さなセルを結合させたのです。たぶん結合させたセルの表示の仕方が悪いのかをおもうのですが・・・ちなみにセルを選んだ時シートの左上にでるI26をA1の代わりに入力してみました。

お礼日時:2006/05/02 21:51

こんにちは。



VBEを開いて、ThisWorkbookモジュールに以下のコードを貼り付けます。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
Dim fName As String

Application.EnableEvents = False

fName = Application.GetSaveAsFilename _
(Sheets("Sheet1").Range("A1").Value & ".xls", "エクセルブック(*.xls),*.xls")
If fName = "False" Then
Application.EnableEvents = True
Exit Sub
End If
On Error GoTo 10
ThisWorkbook.SaveAs fName

10: Application.EnableEvents = True
End Sub



名前を付けて保存ダイアログのファイル名の欄に
"現場名.xls"があらかじめ入力された状態で表示されます。
なお、現場名はシート1のA1に有ると仮定していますので、そうでない場合は実状に合わせて書き換えて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。
せっかく教えて頂いたのですが、私には難しすぎて上手く出来なかったです。
やっぱり名前の変更をした方がよいでしょうか?

お礼日時:2006/05/01 20:29

上書き保存した後、そのファイルの名前を変更すれば、済むと思います。


間違っていたらすみません。
    • good
    • 0
この回答へのお礼

ありがとうございました。
でも名前の変更をしない方法を探していたのです。

お礼日時:2006/05/01 20:23

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