人気ブログランキング | 話題のタグを見る
ブログトップ

カクレ理系のやぶにらみ

tamm.exblog.jp

時間のある方はお読みください。軽い気持ちで読み始めると頭が痛くなります。

Excelで上書き保存したときに更新日時を自動入力するマクロ

 Excelでは印刷するときに、ヘッダーやフッターに印刷日や印刷時刻を表示させることができます。また、保存されたExcelのブックをエクスプローラで確認すると、保存された日時(タイムスタンプ)が表示されます。これらは、作業の記録という点で重要なツールですが、印刷するかエクスプローラをのぞくかしなければならないのは面倒です。
 そこで、Excelのブックを上書き保存するときに日時を自動的に入力するマクロをご紹介します。
 下図のように、「保存する」ボタンをクリックすると、その時点での日時がセルJ3の中に入力され、そのまま上書き保存するというものです。


 Excelで上書き保存したときに更新日時を自動入力するマクロ_c0136904_14504983.jpg



 今回、作成したサンプルファイルを下記のアドレスで公開しているので、必要な方はダウンロードしてお使い下さい。ファイル名の最後にある拡張子が「xlsm」とあるのはExcel2007-2010用です。Excel2003以前のバージョンをお使いの方は、拡張子が「xls」となっている方をダウンロードしてお使い下さい。

http://bit.ly/VaRbR6


 以下、マクロの作成方法を書いていきますが、非常にシンプルなマクロですから、拍子抜けするかもしれません。なお、マクロの作成にあたって、今回はVBAを使います。


1.VBAを起動します。
(Excel97-2003の場合)
「ツール」メニューの「マクロ」から「Visual Basic」をクリックします。

(Excel2007-2010の場合)
リボンの「開発」タブから「Visual Basic」をクリックします。
 なお、「開発」タブがリボンに表示されていない場合は、Excel2007では「Office」ボタンをクリックしてから「Excelのオプション」ボタンをクリックし、左側の「基本設定」をクリックしたら、右側の「[開発]タブをリボンに表示する」のチェックをオンにします。
 Excel2010の場合は、「ファイル」タブから「オプション」をクリックし、左側の「リボンのユーザー設定」をクリックしたら、右側の「開発」のチェックをオンにします。


2.VBAにマクロのコードを記述します。
 これ以降の操作はExcelのどのバージョンでも共通です。


 Excelで上書き保存したときに更新日時を自動入力するマクロ_c0136904_14521863.jpg



(1)上の図で、左側にある「標準モジュール」の下にある「Module1」をダブルクリックします。すると下図の画面に変わります。


 Excelで上書き保存したときに更新日時を自動入力するマクロ_c0136904_14524129.jpg



(2)更新日時を入力するマクロを作成します。
 下記のコード(赤い文字列)を、「更新日.xls - Module1(コード)」ウィンドウに入力します。(面倒だという方は、そのままコピー&ペーストしていただいても結構です。)すると、下記の図のようになるはずです。
 

Sub 日時入力()
'
' 日時入力 Macro
'

Sheet1.Range("j3").Value = Now

End Sub



【更新日02】
 Excelで上書き保存したときに更新日時を自動入力するマクロ_c0136904_1453159.jpg



(コードの説明)
 Nowというのは現在の日時を取得する関数です。入力するのが日時ではなく、その日の日付でよいという場合は、Now ではなく Date を使います。
 取得した日時の値をセルJ3に入力するというのが Range("j3").Value = になります。
 なお、この例ではRangeの前に Sheet1. をつけていますが、これは「シート1のセルJ3」という意味です。Sheet1. を省略することもできますが、その場合、そのとき表示中のシートのセルJ3に日時データが入力されることになります。
 また、Sub 日時入力() というのはマクロの開始を示しており、End Sub はマクロの終了を示しています。

 
(3)上書き保存するマクロを作成する。
 日時入力のマクロの作成が終わったら、Enterキーを押して改行してから、下記のコードを入力します。入力が終われば,マクロの作成は完了です。

Sub 保存()
'
' 保存 Macro
'

Call 日時入力

ActiveWorkbook.Save

End Sub



(コードの説明)
 Call 日時入力 は先ほど作成したマクロ「日時入力」を実行するためのコードです。つまり、まず日時をセルJ3に入力させてから、Excelブックを上書き保存させようというわけです。
 ActiveWorkbook.Save は現在表示中のブックを上書き保存するためのコードです。


 Excelで上書き保存したときに更新日時を自動入力するマクロ_c0136904_1455577.jpg


(4)VBAを終了させます。
 Microsoft Visual Basic for Applications ウィンドウの右上にある「×」ボタンをクリックして、ウィンドウを閉じます。今入力したコードは自動保存されるので心配は要りません。


3.マクロの確認
 マクロの一覧ダイヤログボックスを表示させます。Excel2007-2010では、「開発」タブから「マクロ」をクリックします。Excel97-2003では「ツール」メニューから「マクロ」、「マクロ」をクリックします。
 下図のように、マクロが2つ登録されていれば大丈夫です。「キャンセル」ボタンをクリックしてダイヤログボックスを閉じます。


 Excelで上書き保存したときに更新日時を自動入力するマクロ_c0136904_14553118.jpg


4.マクロの実行用ボタンを配置します。
 ワークシートの適当な位置に、マクロを実行させるボタンを配置します。

(1)四角形を配置します。
(2)四角形を右クリックして「テキストの編集」をクリックします。四角形に「保存する」という文字列を入力したら、見栄えをよくするために「上下左右中央揃え」を施しておきます。(右クリックして「図の書式設定」から「配置」を選択した状態で設定できます。)
(3)ボタンに色と陰をつけます。
(4)ボタンを右クリックして「マクロの登録」をクリックして、表示されるダイヤログボックスから「保存」をクリックして「OK」をクリックすれば完了です。

 Excelで上書き保存したときに更新日時を自動入力するマクロ_c0136904_1456448.jpg



 以後、このボタンをクリックするたびに、セルJ3に日時が入力され上書き保存されることになります。
by t_am | 2013-01-27 14:59 | Excel のあの手この手

by T_am