• ベストアンサー

エクセルのマクロについて

エクセルで表(ファイル名:在庫)にデータを入力し印刷・保存(名前を付けて保存でファイル名を「入力日+ファイル名」で保存)という作業をほぼ毎日行っているのですが、いちいち印刷ボタンを押し、名前を付けて保存でファイル名の前に入力日を付け加えて保存するという作業は手間がかかります。そこで、マクロを使ってワンクリックにて印刷・保存を実行できないかと考えています。ただ、何分初心者ゆえよく分かりません。御教授願えればありがたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

標準モジュールに以下のコードを貼って試してみてください。 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

miyamoro
質問者

お礼

御回答ありがとうございます。 早速、試してみたいと思います。

その他の回答 (2)

回答No.3

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 ) こういった質問の多くは、いわゆる「丸投げ」のコードをそのまま使い、できたできた めでたしめでたし で終わってしまう事が多いのですが...。 それで終わってしまっては、将来的に作業に変更があった場合や別のシーンでの応用などは難しいですね。 この機会に是非勉強して、ご自身のスキルとして身につけてください。

miyamoro
質問者

お礼

御回答ありがとうございます。 ご意見を参考にして、自分で試してみたいと思います。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

マクロの記録という、便利な機能があるのに、なぜそれを中心に考えて、生かさないのか。 大きく区分けて (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)は多様だから省力化のことを考えるのも今後にすることを勧める。エクセルの便利な機能そのものの理解が必要で、そういう本でも読んでからにすること。

miyamoro
質問者

お礼

御回答ありがとうございます。 ご意見を参考にして、自分で試してみたいと思います。

関連するQ&A

  • EXCELのマクロについて

    マクロについて質問させてください。 商品コード、商品名、ケース入数、ロケーション、WMS在庫数、実在庫数、在庫差異 の順でAからHまでデータがあります。 商品コード毎で1行ずつで全部で6000行程あります。 実在庫数と在庫差異以外は既にデータが入力されており棚卸を実施した後に実在庫数へ入力、関数を入れて在庫に差異があれば表示されるというようなものです。 但し、かなりのデータ量で1人での入力は時間が掛かりますので4名で入力業務を行うことになりました。 元のファイルをコピーし4名で入力し始めたのは良いのですが、入力し穴だらけになったらファイルを元のファイルに合算する方法がわかりません。 手作業では骨の折れる作業ですし、正確性に欠けます。 そこでマクロを使ってそれぞれの入力したファイルから元のファイルにデータが自動で移行するようにしたいのです。 以前、マクロを少しかじりましたが私の知識では作ることが出来ませんでした。 どなたかお力添え頂けると助かります。 宜しくお願い致します。

  • エクセルで<名前をつけて保存>するマクロに、保存時マクロを含めて保存させることは可能ですか

    エクセル、マクロとも初心者です。 (VBAはわかりません) エクセルのテンプレートファイルを開いて、必要箇所だけ入力すると、その日の日付をファイル名として、<名前を付けて保存する>ようなマクロを作りました。 このままだと、マクロも一緒に保存されてしまいますよね。 マクロを含まずに、<名前を付けて保存>させるマクロって可能ですか? できるとしたら、どうやればいいでしょうか。

  • エクセルで印刷画面までをマクロにしたい

    いつもお世話になっております。 ここで色々教わりながら複数の人が使う多数のエクセルブックの定常作業をマクロ化しています。 保存するファイル名を自動取得してPDFで保存するマクロと、下記の2行を組み合わせてマクロボタンのワンクリックで保存、印刷が出来る様になたのですが、印刷時に色々設定したい場合もあるので、印刷画面までで止めたいのですがNETで調べても「印刷」は一杯あるのですが手前で止めるコードが分かりません。 いつもの「マクロの記録」も使えずお手上げ状態です。 宜しくお願いします。 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False

  • エクセルのマクロについて

    エクセルのマクロの初心者です マクロのやり方について教えてください。 やりたいマクロの内容は、マクロ設定によるレポートの原料名手書きの簡略化です。 なにがしたいかというと、生産品種が7種くらいありましてそれらは それぞれ使用する原料名が違いまして、レポートを印刷して手書きで品種名をいちいち書いていたんですが、マクロを設定して表の上にある生産品種から生産する品種を選ぶ事によって、原料名を書き込む欄に原料名がとんできて手書きをする手間をなくしたいのです。 シートをいくつか作ってそれから品種を選択するという手もあったのですが、レポート作成にあたっての会社の規定に違反とまではいきませんが、NGという結果だったのでマクロでのみ可というのでマクロを全く知らない自分としては困り果てております。 皆様のご教授を宜しく御願いいたします。

  • エクセルのマクロでこんなことできますか?

    エクセルで毎月のシフト表を作っています。 1.「名前」「開始時刻」「終了時刻」などを入力できるようにしたカレンダーのような表を作成。 2.入力データから、時間数を名前別に集計する。 以上の2つのマクロを作りました。 ここで、1.のカレンダーの表の「名前」は職員の名前だけ入れば良いので、名前の入力欄のセルに入ったら、リストボックスのようなものから選択できるようにできたら使い勝手が良いかな?と思います。 入力ミスを防ぐことと、タイプの手間を省く目的ですが、そういうことってできますか? 何かいい方法がありましたらお教えください。

  • エクセルにマクロが!

    エクセル(Excel2000)で、マクロを使っていないのにマクロが使われてしまいます。 例えば、 まず普通にスタート→プログラムと表示していき、エクセルを立ち上げる。 次にどこのセルでもいいから適当に文字を入力する。(例えば、A1にaと入力する) そして、ファイル→名前を付けて保存で保存する。 こうしてできたエクセルのファイルを普通に立ち上げると、「このファイルはマクロが使われています」と、マクロを有効にするか、無効にするかを確認する画面が出てきてしまいます。 どうしてでしょうか。直す方法はあるのですか。よろしくお願いします。

  • EXCELマクロについて

    csvファイルを一旦EXCELで保存して、見やすい表にしたいのですが、その作業をマクロに記憶させることができる考えております。 ただ、その記憶したマクロを他のパソコンにもコピーできますでしょうか。同じ環境のWindowsで同じバージョンのExcel 一応Excelは2003を考えております。 よろしくお願いいたします。

  • エクセル マクロの組み方

    初めて質問いたします。 1つの基本エクセルファイルから別名の2つ以上のエクセルファイルを選べ、どちらかを起動させるマクロが組め、 基本ファイルに入力し、別名ファイルにリンクし入力出来る様にマクロを組みました。 しかし、基本ファイルを起動させた後、選択できるエクセルファイルはどちらを起動させるかはその都度変化します。 そこで、どちらのファイルが起動しても大丈夫なように、ボタンを押せば保存、印刷をさせる追加マクロを教えてほしいのですが、誰か分かりますか?

  • エクセル マクロを使って日々の実績を累計したい

    エクセルで各社員の日々の販売実績を入力しています。 縦の列に各社員の氏名、横の列は商品名(9種類程度)の表になっています。 この表(シート名:営業実績表)に各自の実績を入力し、1営業日分を印刷、さらに別のシートに累計(シート名:実績累計表)しているのですが、 その際にわざわざ電卓をたたいて累計を入力している有様です。 そこで、この作業をマクロを使って簡単にできないものかと思いこちらに質問させていただきました。 ポイントは (1)1営業日分に関しては紙面での報告だけを求められているので、印刷、累計後はクリアしている。次の日、同じ表を使って日付を一日進めた上で実績を入力している。 (2)累計は一週間、一ヶ月単位ではなく、商品のラインナップが変わるまで行っているため、定まった期間が無い。累計の表に関しては印刷とデータ化を求められている。 (3)エクセルのバージョンは2002です。 以上です。 わかりやすくマクロの式を例示していただければ幸いです。ご回答お待ちしています。

  • エクセルのマクロで連続印刷を

    いつもお世話になります。 エクセルで成績表を作り、マクロで連続印刷ができるようにしています。クラスごとの人数が違うので、マクロには、各クラスごとに、1~○番までと、いちいち入力してあります。 ですが、途中から印刷したい場合もあるということで、 ○~□まで (○、□には任意の数を入れることができる)と変えたいと思います。 ○、□に入れる数を、シートのどこかのセルに入力することで、マクロが自動的に変わる方法をご存じないですか? どなたか、よろしくお願いします。

専門家に質問してみよう