プロが教える店舗&オフィスのセキュリティ対策術

エクセルで、請求書を作るとき、ファイル名の頭4桁に年月を入れ(例:平成22年6月なら2206)、名前をつけて保存をしたときに、保存先候補として、自動的に任意で作成しておいた2206フォルダが出てくるようにできないでしょうか?
あらかじめ、一年分(2204~2303)としてフォルダ12個を一つの期について作っておき、あとは請求書の原本を入れておきます。
その原本を開き、名前をつけて保存したときに自動的に、対象月のフォルダにしまうことができたら、ミスなく、対象月フォルダに保存できるかなと思い質問します。
もっと効率のよい方法があればもちろんそれでもよいです。今、ファイル名の頭4桁で平成○年○月をファイルに表示するところまでできました。あとは保存で悩んでいます、よろしくお願いします。

A 回答 (5件)

> 日付入力セルに、22/07と入力すると平成22年07月と表示されるように設定していますが、そのせいでしょうか?



恐らくその通りです。
I1セルに入っているのは何ですか?日付のシリアル値ですか?文字列ですか?
#表示はどうでもいいです。
前回の捕捉に4桁の数値で平成年月が入っているとありましたので、2207と、4桁の数字が入っている前提で書いていました。日付のシリアル値が入っているのでしたら、コードの2か所を変更してください。 
sPath = ThisWorkbook.Path & "\" & Format(Range("I1").Value, "0000")
sFile = Format(Range("I1").Value, "0000") & "任意の言葉.xls"

sPath = ThisWorkbook.Path & "\" & Format(Range("I1").Value, "eemm")
sFile = Format(Range("I1").Value, "eemm") & "任意の言葉.xls"

文字列でしたら、ほかのセルで何とかして4桁の数値にしてください。

あと、保存しなかった時が分かりにくいのでしたら、以下のように変更してください。

ErrTrap:

Exit Sub
ErrTrap:
MsgBox("保存しませんでした")

ちゃんとできればあなたの要求はほぼ満たすものになるはずです。
    • good
    • 0
この回答へのお礼

勉強不足のまま質問してしまい、もうしわけありませんでした。自分なりにも勉強し、改めてマクロ入力し、ほぼ満足いく形にできました。丁寧な説明文、ありがとうございました。
いまだ勉強中で、まだVBAの文法を理解できていない部分も多く、トラブルも多いですが、少しずつ解決していきたいと考えています。
また質問等、してしむことありますが、お時間あれば回答いただけるとありがたいです。ありがとうございました。

お礼日時:2010/07/10 04:23

ANo.3です。


「名前を付けて保存」のダイアログに拘っているわけではないんですね?
では、シート上にボタンを配置し、そのボタンを押すと、I1セルの4桁の数値を基にしたフォルダとファイル名で保存するやり方を……。
Excelのバージョンが書いていないので、2003の場合で説明します。

1.シート上にコントロールツールボックスでボタン(CommandButton1)を貼り付ける。ボタンのCaptionは適当に変更(例:請求書保存)。
2.貼り付けたボタンをWクリックするとVBエディタ画面が開きます。
 開かない場合は、デザインモードにします。
3.VBエディタに以下を貼り付けます
----
Private Sub CommandButton1_Click()
Call Sample1
End Sub
Sub Sample1()
Dim sPath As String
Dim sFile As String

sPath = ThisWorkbook.Path & "\" & Format(Range("I1").Value, "0000")
sFile = Format(Range("I1").Value, "0000") & "任意の言葉.xls"

If MsgBox(sPath & "\" & sFile & " に、存在します。", vbOKCancel) = vbCancel Then Exit Sub

If Dir(sPath, vbDirectory) = "" Then MkDir (sPath) 'フォルダが無ければ作成
On Error GoTo ErrTrap
Shapes("CommandButton1").Cut 'ボタン削除
ActiveWorkbook.SaveAs Filename:=sPath & "\" & sFile
MsgBox ("保存しました")
ErrTrap:
End Sub
----
 #「任意の言葉」は適当に変更してください。
4.シートに戻り、デザインモードを終了(ボタンを押せる状態にする)。
5.このブックを請求書の原本として保存します(Excelのメニューから保存)。

請求書として保存する時はシートに貼り付けたボタンを押すと、I1セルの値を元にしたフォルダとファイル名で保存します。
また、その際、ボタンは削除します(請求書ブックにボタンは残らない)。
「エクセルで、請求書を作るとき、ファイル名」の回答画像4

この回答への補足

わかりやすい回答、ありがとうございます。さっそくやってみましたが、なぜかうまくいきません。
日付入力セルに、22/07と入力すると平成22年07月と表示されるように設定していますが、そのせいでしょうか?
ちなみに、使用ソフトはエクセル2002、OSはXPのホームエディションです。
また、ボタンをクリックすると、

D:¥会社書類¥ホーム書類¥発行済み見積請求書¥¥任意の言葉.xls.に存在します
   
と表示されますが、Dドライブを探しても、ほかを探しても、ファイルが見つかりません。
原本ファイルは元の場所にそのままありますが、ボタンを一度クリックすると、ボタンが消えてしまうので、再度原本ファイルを開いて別な請求書を作りたいときに、コマンドボタン表示させる必要があるので、できれば、原本ファイルと同フォルダ内にある月ごとのサブフォルダ(2207や2208や2209・・・)に保存され、なおかつ、原本ファイルを開いたときにはコマンドボタンもすぐ押せるようになっていてほしいのですが・・無理でしょうか?

無茶な注文、本当にすみません。日常的に請求書を作る人が、機械に弱く、説明してもなかなか理解できず、保存先フォルダを間違えたり・・はしょっちゅうで、後で大変なので、できるだけ操作をシンプルにして、ミスのないようにしたいなと思っています。本来ならもっともっと勉強してから書き込むほうが、ツーカーで通じるのかもしれません・・私の知識もまだ浅く、試行錯誤しましたがうまくできませんでした。申し訳ないですが、補足で回答をいただけないでしょうか??

補足日時:2010/07/02 21:22
    • good
    • 0

ファイル名を基にするのではなく、セルに入れた日付を元に、フォルダとファイル名を決めて「名前を付けて保存」ダイアログを表示する方法です。


A1セルに日付(=Today()でもいい)を入れておき、C:\TEST\の下のその日付を元にしたフォルダ(今月なら"2207")に日付を基にしたファイル名(例:平成22年07月01日.xls)で保存する画面を表示します。
メニュー上の「名前を付け保存」の替わりに↓こんな感じのマクロを使います。

Sub Sample()
  Dim rtn As Variant
  Dim sFullPath As String
  sFullPath = "C:\TEST\" & Format(Range("A1"), "eemm") & "\" & Format(Range("A1"), "ggge年mm月dd日") & ".xls"
  rtn = Application.GetSaveAsFilename(sFullPath)

  If rtn <> "False" Then
    ActiveWorkbook.SaveAs Filename:=sFullPath
  End If
End Sub

この回答への補足

すみません、マクロ勉強中で、最近やっとマクロの概要がわかったレベルなので、上記の式をそうやったらよいのか、まったくわかりません(;;)

ちなみに請求書の、I2(アイ-2)のセルに日付を平成年月の4桁で入力すると(例:今月なら2207)・・
→ファイル名の先頭に年月が表示され、任意の言葉を後ろに足すこともできる
→保存先も、その年月ごとのフォルダに保存される。


の場合の手順を教えていただけるとありがたいのですが・・どうか、お願いします(><)
新しいマクロの記録方法を最近知ったレベルです。ご面倒をかけて、すみません・・。

補足日時:2010/07/01 23:34
    • good
    • 0

一個ファイルに12個のページを作り


それぞれのページに、2204~2303 と、
ページ名を付けて管理する方が、
簡素化できると思いますが?
基本ページを作成後、ページのコピーで
12ページ作成し、ページ名を変更すれば、
フォルダ管理よりも管理しやすいと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。ただいまマクロ勉強中で、いろいろと簡素化できる方法を模索しています。ご意見参考にさせていただきます。ありがとうございました。

お礼日時:2010/07/10 04:52

請求書の原本を請求書を作る月のフォルダに入れておき開けば「名前を付けて保存」をクリックすると開いた月のフォルダが出てきます。


月が変わったら原本を移動するか、それぞれの月の各フォルダに入れておけば良いでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。ご意見参考にさせていただきます。ありがとうございました。

お礼日時:2010/07/10 04:54

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