今回の記事では、ユーザー名をボタンクリックで入力できるようにします。
以前の記事の続きです。以前の記事はこちらです。
今回の記事では、勝手に入力されるのではなく、ボタンクリックにより任意のタイミングで入力できるようにします。
前回のやり方では、ユーザーが変わると入力値が勝手に変更されてしまうことがありましたので、今回はそれを避けるべく、ボタンを押すまでは変わらないようにしたいと思います。
【手順1】ExcelVBAでユーザー名取得関数を作成する
前回の記事の【手順1】と同じです。まずはユーザー名を取得する関数を作成しましょう。
まず、エクセルを開いた状態で「Alt + F11」を押しましょう。エクセルとは別にウィンドウが開きますので、メニューバーから「挿入→標準モジュール」を選択してください。その後、ウィンドウ右側の空白部分に以下を書きましょう。
Function GetUserName() As String
GetUserName = Application.UserName
End Function
【手順2】署名入力用の関数を作成する
続いて署名入力用のコードを書いていきます。
【手順1】のEnd Functionの末尾から数回改行して以下のコードを入力してください。
Sub sign()
Dim name As String
name = GetUserName()
Cells(1,1).Value = name
End Sub
これで署名をA1セルにユーザー名を入力する準備が整いました。
【手順3】開発タブでボタンを配置する
「開発」→「挿入」→「ボタン(フォームコントロール)」(フォームコントロール欄左上)をクリックしてください。その後、セル上のボタンを配置したい位置でクリックしてください。
すると「マクロの登録」ウィンドウが開かれますので、先ほど作成したシート名.sign(初期状態ならSheet1.sign)を選択し、OK。
【手順4】ボタンクリックでユーザー名を入力する
表示されたボタンをクリックしてみてください。
・・・っ!
A1セルにユーザー名が表示されただとっ!
あとは先ほど記述したコードのユーザー名を入力したいセルを調整すれば完了です。
補足
今回は割愛しましたが、入力欄が複数ある場合などは条件文などを活用すると一括で入力できるようになります。
コメント