アプリ版:「スタンプのみでお礼する」機能のリリースについて

ブックを名前を入れて保存する際にシートのセルに入っている日付と番号を自動に転記して保存という風にできますでしょうか?マクロでもいいのですが、(マクロの際には今1つマクロが実行されているの
ですが、もう一つマクロを加えて同時に機能するものかも教えてください。)

今現在B1に日付(平成29年1月10日のような)、A1に見積番号(5002のような)感じではいってます。
C1に会社名(ABC商事)、D1に商品内容(フルーツ)、最後の見積書は自動ではいるように。
これを名前をつけて保存としたときにファイル名に自動で反映させたいのですが
イメージ的には20170110-5002ABC商事フルーツ見積書という感じにしたいです。
返す日にちは西暦にしてそのあとの見積もり番号の間に-を入れる感じで。

素人ですみませんが、ご検討お願いします。

A 回答 (2件)

この前の続きですね。



>パス = Sheets("設定").Cells(8, 4)
>フルパス = パス & 会社名 & "\" & 見積番号 & 支店名 & ".xls"
の「&」以降
「 見積番号 & 支店名 & ".xls"」
が実際のファイル名になっています。

今後のために一旦「保存名」という変数を準備しておくことをお勧めします。
また、前提条件として、

>今現在B1に日付(平成29年1月10日のような)、
これがあるのは、以前のままで(Sheets("見積"))である。
実際の内容はシリアル値であり、表示形式を「[$-411]ggge"年"m"月"d"日"」などにしている。
※実際に「平成29年1月10日」という文字列をシリアル値→西暦表示に変換するのはかなりめんどくさいです。
としています。

>パス = Sheets("設定").Cells(8, 4)
保存名=format(Sheets("見積").Range("B1"),"yyyymmdd")& "-" & Sheets("見積").Range("A1").text & Sheets("見積").Range("C1").text & Sheets("見積").Range("D1").text & "見積書.xls"
>フルパス = パス & 会社名 & "\" & 保存名

とすればいいのではないでしょうか?
後々のためには、他の必要な情報も
会社名=Sheets("見積").Range("C1").text
商品内容=Sheets("見積").Range("D1").text
保存名=・・・・・・・・& 会社名 & 商品内容 &・・・・・
などのようにしておくと見やすく、変更も楽になりますよ。
    • good
    • 1
この回答へのお礼

いろいろありがとうございます。これで挑戦してみます。

お礼日時:2017/01/22 07:06

No.1 Zincerさんの回答に「この前の続きですね」と記していますが、過去の経緯が分からないので、的外れな回答になっていたら、ごめんなさい。



ThisWorkbookモジュールに次のマクロを張り付けてみて下さい。
ファイル名の編集は、お好みで見直してください。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim myPath As String
If SaveAsUI Then
myPath = Format(DateValue(Range("B1").Text), "yyyymmdd")
myPath = myPath & "-"
myPath = myPath & Range("A1").Text
myPath = myPath & Range("C1").Text
myPath = myPath & Range("D1").Text
myPath = myPath & "見積書"
SendKeys myPath
End If
End Sub
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。申し訳ないんですが、thisworkbookモジュールというのは標準モジュールの中にあるのでしょうか?
素人すぎて申し訳ないのですが。上記のマクロを編集ではりつけたのですが、機能しないもので。私のやり方がわるいのはわかっておりますが、ちょっと教えてください。

お礼日時:2017/01/22 07:08

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