- 締切済み
保存するときに自動にファイル名をつけたい
ブックの構成は6ッのシートから成り立っています。 1 納品 請求書1 会社名 住所などの基本はここで 日付 金額 作業内容は個別に 2 納品 請求書2 1以外で日付 金額 作業内容などの個別ごとに 3 納品 請求書3 1以外で日付 金額 作業内容などの個別ごとに 4 月請求書 1~3の内容をまとめたもの 5 領収書 6 顧客登録 ブックの中の 納品 請求書 はとりあえず3件用意していますが増えるとコピーで追加します 納品 請求書1の A2 にID番号を入力するとB4に会社名が 例 A2 100 (=IF(A2="","",VLOOKUP(A2,顧客登録!A2:D201,3,FALSE)) & " ") B4 山田製作所 これは上記の2~6迄にも反映されます このような場合、月請求書にも反映されます B4 山田製作所(=納請書1!B4) G4 2/10と入力すると G2 管理No. 090210100m (=IF(A2="","",TEXT(G4,"yymmdd")&A2)&"m") この時に保存するときに、 保存名を「090210100山田製作所」という具合につけられる方法がありますか。 もしあるようであればご教授を御願いできませんでしょうか。 詳しくない小生の考えではマクロと思いますので詳しくご指導いただければ 幸甚です。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- n-jun
- ベストアンサー率33% (959/2873)
#4です。 Excelのバージョンがわからないので一例: Excel(エクセル) VBA入門:マクロの自動記録と実行 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01.html 【マクロの自動記録】の4. VBE画面で挿入>標準モジュールで表示された白い画面に、#1のコードをコピペ。 【マクロの実行】参照。 「try」が表示されるはずなので、選択して実行をクリック。
- n-jun
- ベストアンサー率33% (959/2873)
#2です。 >試行錯誤で試していますが小生の力不足でうまくいきません #3さんも仰ってますが”マクロとは何か?”を理解されてからでないと、 後々大変だと思います。 それに「うまくいきません」とは、どううまくいかないのかがわかりません。
補足
Sub try() Dim wb As Workbook Dim ws1 As Worksheet ActiveSheet.Copy Set wb = ActiveWorkbook Set ws1 = ActiveSheet wb.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(ws1.Range("G4").Value, "yymmdd0") & ws1.Range("B4").Value wb.Close End Sub こうゆう感じなのかとも思いますが、どのタイミングで実行するのかがわかりません。 取り敢えず”マクロの実行”で動くはずです。 上のマクロのプログラムを挿入して試しました。 「マクロの実行」が分からずいろいろと試しましたがこれが分からないので困っています。 小生の力不足が露呈して申し訳ありません。 本当にご迷惑掛けます。
- imogasi
- ベストアンサー率27% (4737/17069)
色々扶養と思われることも書いているが、エクセルであれば、関数を使ってででも、「ある所定のセル」に、保存したいブックのファイル名を作成するのが普通かなと思う。 それは説明を省略する。TEXTと&の利用の世界だし、疑問点が有るなら絞って質問説明のこと。 ーー 保存するキッカケを捕まえないといけない処理はVBAでないと出来ないでしょう。 その保存処理を行うキッカケは A.コマンドボタンを代表シート上に設けるなんてことも考えられると思うが B。ブックを閉じるボタンXをクリックすることをキッカケにする手も有る。それは ThisWorkBookのBeforeCloseに Private Sub Workbook_BeforeClose(Cancel As Boolean) fn = Cells(1, "A") MsgBox Cells(1, "A") MsgBox CurDir MsgBox CurDir & "\" & fn & ".xls で保存します" ActiveWorkbook.SaveAs Filename:=CurDir & "\" & fn & ".xls" End Sub と入れる。 なおMsgboxはテスト用なので、納得後は削除しても良い。 上記ではA1セルに、保存するブック名を入れるというお約束にしている。 ーー 勉強について BeforeClose Cells CurDir SaveAs などは「SaveAs VBA エクセル」のようにして、Googleででも照会すれば、沢山の解説やコード例が出てくる。 ーー イベントという考えは知っていますか。 >詳しくない小生の考えではマクロと思いますので詳しくご指導いただければ・・ なんとなくまだ早すぎる課題のような気がするが。
補足
試行錯誤で試していますが小生の力不足でうまくいきません ご面倒掛けています
- n-jun
- ベストアンサー率33% (959/2873)
#1です。 Sub try() Dim wb As Workbook Dim ws1 As Worksheet ActiveSheet.Copy Set wb = ActiveWorkbook Set ws1 = ActiveSheet wb.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(ws1.Range("G4").Value, "yymmdd0") & ws1.Range("B4").Value wb.Close End Sub こうゆう感じなのかとも思いますが、どのタイミングで実行するのかがわかりません。 取り敢えず”マクロの実行”で動くはずです。 コピーするのは”作業をしているアクティブなシートのみ”です。
補足
試行錯誤で試していますが小生の力不足でうまくいきません ご面倒掛けています
- n-jun
- ベストアンサー率33% (959/2873)
>保存名を「090210100山田製作所」という具合につけられる方法がありますか。 よくはわかりませんが、「山田製作所」は1日ごと(?)にブックを増やしていく方法で 良いのでしょうか? 顧客数×保存した日数分のブックが溢れる事になりますが、それが希望でしょうか? と疑問があります。
補足
ここで言う ブックとしては例えば山田製作所は月に一度の保存です。 ブックの中はいくつかのファイルはあります。 一部訂正させてください。 この時に保存するときに、 保存名を「090210100山田製作所」という具合につけられる方法がありますか。 「090210100山田製作所」を「0902100山田製作所」に変更します。 宜しくご指導を御願いします。
補足
いろいろご指導いただいてトライしましたが小生の力不足でご指導が上手くできません。 本当に心から申し訳なく思っています。 もう少しお付き合いいただけたら幸甚です。 シート名「納請書1」のA2 にID番号を入力するとB4に会社名を表示します。 例 A2 100 (=IF(A2="","",VLOOKUP(A2,顧客登録!A2:D201,3,FALSE)) & " ") B4 山田製作所 とセルに表示されます。 簡単な他の方法で、 ブック名を保存する場合、ファイル名に「山田製作所」と自動的に表示されて保存したいのですが可能でしょうか。 もし可能ならばご教授願えないでしょうか。 何度も質問して失礼かと思いますがょろしくおねがいします。