ACCESS VBAを学習しています。
今回はVBAを使った名前の自動入力について学びます。
この記事では、使い方と使用例を掲載しています。
使い方については、よく使う部分だけを抜粋してご紹介しています。
詳細は公式のドキュメントをご覧ください。
説明
この記事では以下の3つを組み合わせています。
詳細は各記事へのリンクをご覧ください。
Windowsのユーザー名の取得:Environ
Environ関数を使うと、Windowsのユーザ-名を取得することができます。
Macではできないようです。
フォーム起動時の処理:Form_Load()
Form_Load()を使うとフォームが開かれた時に自動的に処理を行うことができます。
→フォームを開いたときに自動的に処理を行う
標準モジュールの使用と呼び出し
各フォームを開いたときや、ボタンをクリックしたときにVBAのコードを実行することが多いですが、標準モジュールを使って汎用的な処理を呼び出す形で使うこともできます。
ユーザー名を取得する処理は、他の処理でも使うことがあるかもしれないので、今回は標準モジュールに記載して呼び出すことにしました。
→標準モジュール
使用例(コード)
標準モジュール
1 2 3 4 5 6 |
Public Function Get_UserName() Dim user As Variant user = Environ("USERNAME") user = Replace(user, " ", "") Get_UserName = user End Function |
「Get_UserName」という名前でWindowsのユーザ-名を取得する関数を標準モジュールに用意しています。フォーム起動時にこちらを呼び出すことで名前を入力しようと思います。
「Replace」は指定された変数や文字列の中にある文字を置換する操作です。今回は変数「user」内の値が「山田 太郎」から「山田太郎」に変換する処理を行っています。
Replace([変数], [置換前の文字列],[置換後の文字列] )
※空白を除外したいならコード内のように記載
フォーム起動時
1 2 3 4 5 |
Private Sub Form_Load() Dim user As Variant user = Get_UserName Me!textbox_入力者名 = user End Sub |
Form_Load()を使って、フォームを開いた際に自動的に処理を行うようにしています。
変数「user」をVariant型で用意し、「Get_UserName」でWindowsのユーザ-名を取得する処理を呼び出し、ユーザー名を代入しています。
Me!はフォーム自身のことを指しています。フォーム自身の「textbox_入力者名」というテキストボックス(コントロール)に変数「user」の値を代入しています。
実行結果は↓こちらのようになります。フォームを開くと、自動的に名前が入力されました。
私用PCでは購入後のセットアップで自分が設定した名前が入力されますが、業務用のPCでは社員番号などの社員IDが表示されることもあるかもしれません。
その場合は、別テーブルに社員マスタを用意しておいて、そちらに変換して入力するような形でも良いかもしれません。
※実際の業務では新規顧客登録画面に入力者名を入れる必要はないかもしれませんが、今回はサンプルのためこのような形にしています。
参考
ACCESSの記事を一覧にしています。ACCESS VBAの正式な情報は公式ドキュメントを読むべきですが、このサイトでは実際に使う場面を想定して紹介しているので、公式ドキュメントと併せて読んでいただくと理解が深まると思います。
コメント