- ベストアンサー
エクセルのマクロについて
エクセルで表(ファイル名:在庫)にデータを入力し印刷・保存(名前を付けて保存でファイル名を「入力日+ファイル名」で保存)という作業をほぼ毎日行っているのですが、いちいち印刷ボタンを押し、名前を付けて保存でファイル名の前に入力日を付け加えて保存するという作業は手間がかかります。そこで、マクロを使ってワンクリックにて印刷・保存を実行できないかと考えています。ただ、何分初心者ゆえよく分かりません。御教授願えればありがたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
標準モジュールに以下のコードを貼って試してみてください。 Sub test1() Dim fn As String fn = ThisWorkbook.Path & "\" & Format(Date, "yyyymmdd") & ThisWorkbook.Name ActiveWorkbook.SaveAs Filename:=fn ActiveSheet.PrintOut ActiveWorkbook.Close (True) End Sub
その他の回答 (2)
- liquid_crystal
- ベストアンサー率71% (124/174)
Excel のバージョンが判りませんが... Excel 2003 以前を前提で。 メニューから [ツール] - [マクロ] - [新しいマクロの記録] を実行して、一連の操作を行います。 基本的に「マクロ」は、"行った操作を反復して実行する" ものです。 例えば 特定のセルに特定のデータを入力し、印刷して「名前をつけて保存」で特定のファイル名で保存。 この操作を繰り返し行う (入力するデータも保存するファイル名もすべて同じ) のであれば、このまま利用できます。 入力するデータをその都度変えたい、保存するファイル名をその都度変えたいなどという場合、こうしてできた「マクロ」から "VBA" を使ってアレンジを加えていきます。 といっても、何も予備知識なしでいきなり使いこなせるほど VBA は簡単ではありません。 インターネットには VBA の解説をしているサイトがいっぱいありますし、専門書籍で勉強するのもいいでしょう。 ご自身の「スキル」として身につけたいのでしたら、一つ勉強してみてはどうでしょう。 下記は適当に検索して見つけたページなので内容については吟味していませんが、ざっと見た感じでは判りやすくて初心者向けかなと思います。 こういったところなどで基礎の部分を勉強してみてはどうかなと思います。 Excel全開VBA http://www.sigoto.co.jp/excel/ エクセルVBAでマクロの作成 http://kiyopon.sakura.ne.jp/vba/index.htm でもできれば、解説本を買って手元に置いて勉強する方が判りやすいと思います。 本屋さんでじっくり立ち読みして、自分で判りやすいと思う本を探してみてください。 具体的な手順は、ANo.1 で書かれている VBA が「ファイル名に日付を追加して保存、プリントアウト」の VBA なので、これを使えばいいと思います。 繰り返し処理、という事でしたら、最後の ActiveWorkbook.Close (True) の後にファイルを開く操作を追加する方がいいかもしれませんね。 その場合、下記を一行追加します。 Application.Dialogs(xlDialogOpen).Show 更に、開くファイルがいつも同じ特定の場所 (例えば D:\ExcelFile フォルダ) にある場合は、もう一行加えておきます。 ChDir "D:\ExcelFile" Application.Dialogs(xlDialogOpen).Show (merlionXX さんに便乗する形になってしまいすみません m(_ _)m ) こういった質問の多くは、いわゆる「丸投げ」のコードをそのまま使い、できたできた めでたしめでたし で終わってしまう事が多いのですが...。 それで終わってしまっては、将来的に作業に変更があった場合や別のシーンでの応用などは難しいですね。 この機会に是非勉強して、ご自身のスキルとして身につけてください。
お礼
御回答ありがとうございます。 ご意見を参考にして、自分で試してみたいと思います。
- imogasi
- ベストアンサー率27% (4737/17069)
マクロの記録という、便利な機能があるのに、なぜそれを中心に考えて、生かさないのか。 大きく区分けて (1)データを入力 (2)印刷 (3)名前をつけて保存 の3つを繰り返しているようですが、それぞれ本番の作業をすると新しいマクロの記録」モードにして行う。 そして、Macro1とか名付けけられた、マクロのコードを印刷し、じっくりながめてみることです。(第1日) もう1日の分をマクロの記録をとりコードを相互に1行ずつ、かつ1文字・1記号づつ丁寧に比較しましょう。(第2日) 違う部分はマークして、どういう操作が日が変わると変わるのか、 マクロのコードが変わるのか目前に認識しましょう。 さて明日には(第3日には?)、どうマクロのコードを変えて実行 すると良いかわかるでしょう (2)では印刷範囲など、 (3)では保存するブック名など、(2)(3)では小数でしょう。 それでコードをどうどう変えるか、どうしても判らなければ、本当はこの課題に取り組む資格はないのですが、その点に絞って、質問コーナーに質問するのもやむを得ないでしょう。 これら(2)(3)は操作者との対話形式で、プログラムに与えることになりますが (3)はWEBで「INPUTBOX VBA」(2)は「Application.InputBox VBA」で照会のこと。 後者は http://officetanaka.net/excel/vba/tips/tips37.htm http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page22.htm http://www.moug.net/skillup/nksw/nksw06-01.htm などたくさん出てくる。 Type:=8に注目。 ーーー (1)は多様だから省力化のことを考えるのも今後にすることを勧める。エクセルの便利な機能そのものの理解が必要で、そういう本でも読んでからにすること。
お礼
御回答ありがとうございます。 ご意見を参考にして、自分で試してみたいと思います。
お礼
御回答ありがとうございます。 早速、試してみたいと思います。