先日、開発作業にて困ったこととその解決方法をまとめました。
開発作業にて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
これでエクセルを立ち上げた時に、自動で処理開始日に本日の日付が入るようになります。
今回は以上です。
コメント