【図解解説!】VBAを利用して本日の日付の取得方法とエクセルを立ち上げた時に自動でマクロを動かす方法

技術関連

先日、開発作業にて困ったこととその解決方法をまとめました。

 

開発作業にてVBAを用いた画面の開発作業をしていた時のこと。

 

要件の中に

 

エクセルを立ち上げた時に立ち上げた日にちを自動的に入れること

 

というものがあったので、ネットで調べつつ実装を試みていました。

イメージとしてはこんな感じです。

 

 

 

ちなみに、日にちを入れる白いボックスは

 

エクセルの画面ヘッダーにある「開発」>「挿入」>「ActiveXコントロール」のテキストボックス

 

から作りました。

 

本日の日付を自動取得するマクロを組んだ!

 

 

 

きだ
きだ

ちなみに、デザインモードを押下しないとプロパティとソースコードが見れません。僕はそれに気づかずかなりの時間を消耗しました。。。

 

本日の日付をyyyymmdd形式で取得するコードは以下のようになります。

これはインターネットで検索をすれば簡単に見つかります。

 

Format(Date, "yyyymmdd")

Date関数で取得した今日の日付をFormat関数を使って、yyyymmdd形式に書式を整形できます。

 

Private Sub Fromテキスト_Change()
 Fromテキスト = Format(Date, "yyyymmdd")
End Sub

ここまで記述したうえで、F8を押してデバッグしてあげると、ActiveXで作成したテキストボックスに今日の日にちが入ります。

 

 

あとはこれを、エクセルを立ち上げた時に自動でマクロを起動できればOKです。

 

エクセル起動時にマクロを自動で実行するプログラムを書いてみた

 

エクセルを立ち上げた時に自動で動かしたいマクロは、「ThisWorkbook」に以下のコードを記述します。

 

 

Private Sub Workbook_Open()

' Put your code here

End Sub

 

ポイントは「ThisWorkbook」にソースコードを記述すること。

 

きだ
きだ

僕は最初、それが分からず「Sheet1」の箇所に書いていました。自動でマクロが起動せず、時間を消耗しましたね。。。

 

 

Private Sub Workbook_Open()

    Sheets(1).Fromテキスト = Format(Date, "yyyymmdd")

End Sub

これでエクセルを立ち上げた時に、自動で処理開始日に本日の日付が入るようになります。

 

コメント

タイトルとURLをコピーしました