2024年3月29日【ID:0】
メンバー限定
【ExcelVBA】更新履歴を自動で入力
以下のような更新履歴表に関して、「更新」ボタンを押して更新内容を入力するだけで、表の最終行に「更新日、更新者(パソコンにログオン(ログイン)したユーザー名)、更新内容(インプットボックスに入力した値)」が自動で入力される仕組みを開発していきます。
VBAを活用することで、簡単にパソコンに記録されている情報(パソコンにログオンしたユーザー名など)を取得することができます。
今回は、更新者としてパソコンにログオンしたユーザー名を取得していますが、他の値を取得する方法についても、確認用のマクロを配布して解説しています。
機能を開発するために、まずは更新履歴表を用意します。
今回こちらでは、以下のような表を用意しています。
5行目以降に関しては、罫線のみで値を入力していない状態にしておきます。
※用意した表のレイアウト(項目の位置など)によっては、開発するプログラムの内容が異なります。
次に、[開発]タブの中の[マクロ]を選択します。
※[開発]タブが表示されていない場合は、以下の手順をご確認ください。
以下の画面が表示されましたら、開発する機能の名前(こちらでは「更新」)を入力し、[作成]を選択します。
以下の画面が表示されましたら、「Sub 更新()~End Sub」の間にプログラムを入力していきます。
※環境によっては、「Option Explicit」が表示されていないことがありますが、今回はなくても問題ございません。
では次に、以下のようにプログラムを入力します。
※こちらを実装したExcelファイルは、記事の最後にて配布しています。
Sub内はTabキーにてインデント(字下げ)しています。
インデントの有無では処理に影響はないのですが、処理の見やすさの観点からインデントする癖をつけておいた方が良いです。
プログラムの内容について簡単に確認していきます。
まずは、以下の内容です。
「Dim」と書かれているのは、一時的に値を格納する部屋(変数)を用意する宣言(変数宣言)になります。
「As」の後に部屋の種類を記述しています。(「String」は文字専用の型)
次に、用意した「detail」という変数にインプットボックス「InputBox」に入力した値を格納します。
「InputBox」の括弧の中の文字は、インプットボックスに表示される文字になります。
イメージは以下になります。
次に以下の内容です。
「Dim」は先ほど同様に変数宣言になります。(「Long」は数値専用の型)
「Rows.Count」はシートに存在している最大の行番号になるため、「Cells(Rows.Count,”B”)」でシート上のB列の一番下のセルを指定しています。
このセルから、Ctrlキーを押しながら上に移動「.End(xlUp)」し、止まった位置の行番号「.Row」に1を加えた数を取得しています。
→ B列の下から上に向かっていく中で、次に文字が入力されているセルの一つ下の行番号(5)を取得
次に以下の内容です。
先ほど取得した行番号のB列のセルに実行した時の日付「Date」を入力し、C列のセルにパソコンにログオンしたユーザー名を入力、D列のセルにインプットボックスに入力した値を入力しています。 ユーザー名はEnviron関数を用いて取得しています。
※Environ関数で取得できる値については、最後に確認用マクロを配布して解説しています。
最後に以下の内容にて、Excelファイルを保存しています。
これで機能としては完成しているため、後はボタンを作成し、そのボタンに開発した機能を割り当てれば完成です。
ボタンは、[開発]タブの中の[挿入]から作成すると良いです。
上記のボタンを選択後、図形の作成時と同様にボタンを作成すると、[マクロの登録]画面が表示されます。
そこでは、開発したマクロの名前を選択することで、マクロを割り当てたボタンを用意することができます。
ボタンの表示名などは必要に応じて変更してください。
※作成したボタンを編集する場合は、Ctrlキーを押しながら選択します。
このようにして、ボタンを押してインプットボックスに更新内容を入力するだけで、表の最終行に値が入力されます。
・Environ関数について
最後に、Environ関数で取得できる値について、確認用のファイルを配布して解説していきます。
Environ関数で取得できる値は以下になります。
続きはIT予備メンバー限定です。
メンバー限定コンテンツになります。
IT予備メンバーページと連携することで内容を確認することができます。
メンバーとは
すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。
ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます