- 締切済み
印刷と保存の仕方をVBAマクロのソースで教えてください
EXCELVBAで給料明細を作成しているのですが 全ての処理が終わったあとに 保存 ↓ 印刷 ↓ EXCEL本体を閉じる という作業を最後に行いたいのですが保存と閉じ方がわかりません。 初心者なのでお手柔らかにご教授お願いします シート名は明細書元 -------------------------------------------------- Worksheets("明細書元").PrintOut '印刷する ThisWorkbook.Saved = True Application.Quit --------------------------------------------------- 省略しすぎでしょうか? これ以前の処理というのは (1)日にちを入れる (2)セルの値についてのチェック(13項目でFor文で配列を使用) (3)所得税、健康保険料、厚生年金、雇用保険の計算(For文) (4)入力シートというものがありそこに入力された名前の数だけ明細書元のシートに書いてあるものがコピー&貼り付け(主に名前、基本給、通勤手当、調整分、住民税、(3)で計算したもの) (5)総支給額、控除合計、差引支給額の計算、表示 を行いました。 もし必要なソースがあれば言ってください。 再度貼り付けさせていただきます。 以前『VBAマクロを使って給料明細を作成したい』でお世話になりました。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- AisBaby
- ベストアンサー率0% (0/0)
こんな感じはいかがでしょうか? ちなみに私のパソコンでは動作しました♪ ただ、西暦での保存になってしまぅのですが。。。 ********************** Dim Namae As String 'ファイルの名前定義 Namae = DatePart("yyyy", Now) & "年" & DatePart("m", Now) & "月" & ".xls" '現在より年・月を取り出してファイル名作成 ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\MEGWS009\デスクトップ\" & Namae, FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False ********************** ファイルの保存場所は "C:\Documents and Settings\MEGWS009\デスクトップ\" になってる部分をご自分の保存したい場所に変更して下さい♪ 参考でもお役に立てればうれしいです♪
- FEX2053
- ベストアンサー率37% (7991/21373)
>処理した日の日付を題名に保存をかけたいのですが その場合はやはり SaveAsメソッドを使わないと。 Worksheets("明細書元").PrintOut ActiveWorkbook.SaveAs Filename:=ファイル名 Application.Quit こんな感じでしょうか。当然どこかで変数「ファイル名」に必要な ファイル名を設定する処理が必要ですが、その程度は分かりますよね。 詳細は、ヘルプの「SaveAsメソッド」を参照して下さい。
お礼
はい!! わかります。 ありがとうございました。 返信遅くなってしまい申し訳ありません
- FEX2053
- ベストアンサー率37% (7991/21373)
それこそ Worksheets("明細書元").PrintOut '印刷する Application.Quit だけでいいはずです。Quitを実行するときは、ごく普通に「保存せず終了」 したときと全く同じ動きをしますから、「保存しなくて良いですか」と言う ダイアログが自動的に出てきますので。 上書き保存するだけなら、ヘンにコードを書くよりExcelに任せてO.K.ですよ。
お礼
ありがとうございますw もうひとつあるんですが処理した日の日付を題名に保存をかけたいのですがどうしたらいいでしょうか? 9月に処理をした場合はその時処理したやつであれば平成20年9月分で名前を付けて保存になり、10月であれば平成20年10月分というタイトルで名前を付けて保存にしファイルを増やしていきたいのです。 お忙しいとは思いますがご教授お願いします
お礼
ありがとうございました。 やってみたらできました。 お返事遅くなってしまいもうしわけありません