エクセルで、請求書を作るとき、ファイル名の頭4桁に年月を入れ(例:平成22年6月なら2206)、名前をつけて保存をしたときに、保存先候補として、自動的に任意で作成しておいた2206フォルダが出てくるようにできないでしょうか?
あらかじめ、一年分(2204~2303)としてフォルダ12個を一つの期について作っておき、あとは請求書の原本を入れておきます。
その原本を開き、名前をつけて保存したときに自動的に、対象月のフォルダにしまうことができたら、ミスなく、対象月フォルダに保存できるかなと思い質問します。
もっと効率のよい方法があればもちろんそれでもよいです。今、ファイル名の頭4桁で平成○年○月をファイルに表示するところまでできました。あとは保存で悩んでいます、よろしくお願いします。
No.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("保存しませんでした")
ちゃんとできればあなたの要求はほぼ満たすものになるはずです。
勉強不足のまま質問してしまい、もうしわけありませんでした。自分なりにも勉強し、改めてマクロ入力し、ほぼ満足いく形にできました。丁寧な説明文、ありがとうございました。
いまだ勉強中で、まだVBAの文法を理解できていない部分も多く、トラブルも多いですが、少しずつ解決していきたいと考えています。
また質問等、してしむことありますが、お時間あれば回答いただけるとありがたいです。ありがとうございました。
No.4
- 回答日時:
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セルの値を元にしたフォルダとファイル名で保存します。
また、その際、ボタンは削除します(請求書ブックにボタンは残らない)。
この回答への補足
わかりやすい回答、ありがとうございます。さっそくやってみましたが、なぜかうまくいきません。
日付入力セルに、22/07と入力すると平成22年07月と表示されるように設定していますが、そのせいでしょうか?
ちなみに、使用ソフトはエクセル2002、OSはXPのホームエディションです。
また、ボタンをクリックすると、
D:¥会社書類¥ホーム書類¥発行済み見積請求書¥¥任意の言葉.xls.に存在します
と表示されますが、Dドライブを探しても、ほかを探しても、ファイルが見つかりません。
原本ファイルは元の場所にそのままありますが、ボタンを一度クリックすると、ボタンが消えてしまうので、再度原本ファイルを開いて別な請求書を作りたいときに、コマンドボタン表示させる必要があるので、できれば、原本ファイルと同フォルダ内にある月ごとのサブフォルダ(2207や2208や2209・・・)に保存され、なおかつ、原本ファイルを開いたときにはコマンドボタンもすぐ押せるようになっていてほしいのですが・・無理でしょうか?
無茶な注文、本当にすみません。日常的に請求書を作る人が、機械に弱く、説明してもなかなか理解できず、保存先フォルダを間違えたり・・はしょっちゅうで、後で大変なので、できるだけ操作をシンプルにして、ミスのないようにしたいなと思っています。本来ならもっともっと勉強してから書き込むほうが、ツーカーで通じるのかもしれません・・私の知識もまだ浅く、試行錯誤しましたがうまくできませんでした。申し訳ないですが、補足で回答をいただけないでしょうか??
No.3
- 回答日時:
ファイル名を基にするのではなく、セルに入れた日付を元に、フォルダとファイル名を決めて「名前を付けて保存」ダイアログを表示する方法です。
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)・・
→ファイル名の先頭に年月が表示され、任意の言葉を後ろに足すこともできる
→保存先も、その年月ごとのフォルダに保存される。
の場合の手順を教えていただけるとありがたいのですが・・どうか、お願いします(><)
新しいマクロの記録方法を最近知ったレベルです。ご面倒をかけて、すみません・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- Visual Basic(VBA) エクセル VBAについて教えてください 2 2023/04/26 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 10:00
- グループウェア 一太郎がイントラで開けません。対処方法を知りたいです。 3 2023/04/04 13:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あの Spotifyの曲を USBに保存...
-
WEBページの全てを保存させない...
-
ダウンロードすると画像サイズ...
-
紹介していただいたソフトを入...
-
【FireFox】リンク先の画像をク...
-
ホームページ・ビルダーのデー...
-
macでPDFが別名保存できない
-
音楽配信で購入した曲の保存方法
-
クロームの、パスワードの保存...
-
Leawo Blu-ray Playerをダウン...
-
パソコン初心者なのですがデス...
-
Google Chrome のお気に入りの...
-
Chrome でPDF等をダウンロード...
-
Windows10 firefoxでファイル...
-
GoogleChromeのDL中のファイ...
-
パソコンが自宅に3台ありお気に...
-
画像のURLをリストで指定して一...
-
firefox 履歴 削除 消えない...
-
動画の保存とダウンロードの違い
-
DVD Flickの「プロジ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダウンロードすると画像サイズ...
-
紹介していただいたソフトを入...
-
google chrome ブックマークの...
-
あの Spotifyの曲を USBに保存...
-
ホームページ・ビルダーのデー...
-
WEBページの全てを保存させない...
-
PhotoshopCS5でWeb用に保存のア...
-
ブックマークの違法性。
-
クロームの、パスワードの保存...
-
Firefoxテーマの保存先について
-
Gom PlayerでCaptureに保存され...
-
media player classic 画像キャ...
-
音楽配信で購入した曲の保存方法
-
エクセルで、請求書を作るとき...
-
macでPDFが別名保存できない
-
LISMO(リスモ)に取り込...
-
おすすめのGoogle Chromeの拡張...
-
Firefoxで画像を保存する良いア...
-
【FireFox】リンク先の画像をク...
-
名前を付けて保存
おすすめ情報