経緯
ExcelでVBAを使ってユーザーフォームを作成している中で、
**「フォームで入力した内容を記録として残したい」**という場面がありました。
たとえば、誰かがフォームを使って何かを登録した際に、
- いつ登録されたのか
- どんな内容が入力されたのか
を履歴として自動で記録しておきたくて、今回この機能を実装しました。
実現したい仕様
- ユーザーフォームに入力したテキストを、Excelシートに蓄積形式で保存
- 日時も一緒に記録され、あとで確認できる
- ボタンを押すと、フォームが閉じて、履歴だけがシートに追加される
フォーム構成と想定
- ユーザーフォームにテキストボックスが2つ(
TextBox_1
とTextBox_2
) - 実行用のボタンが1つ(
CommandButton_run
) - 記録先は
Sheet1
の S列・T列・U列
- S列:TextBox_1の入力値
- T列:TextBox_2の入力値
- U列:登録日時(Now
)
実装コード(VBA)
以下が、実行ボタンに設定するコードです。
Private Sub CommandButton_run_Click()
' ユーザーフォームを閉じる前に履歴を記録する
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "S").End(xlUp).Row + 1 ' S列の最後の行の次を取得
' 入力値と日時を記録
ws.Cells(lastRow, "S").Value = TextBox_1.Text
ws.Cells(lastRow, "T").Value = TextBox_2.Text
ws.Cells(lastRow, "U").Value = Now
' フォームを閉じる
Unload Me
End Sub
コードの補足
lastRow
を使って、常に次の空き行に記録されるようになっています。Now
は、現在の日付と時刻を記録する関数です。Unload Me
により、実行後はフォームが自動で閉じられます。
応用のヒント
- ユーザー名や担当者名などの入力フィールドを追加することで、記録の信頼性が高まります。
Application.EnableEvents = False
などの処理を組み合わせれば、記録時のトリガー制御も可能です。
まとめ
- VBAでユーザーフォームの内容を履歴として記録するのは簡単に実現可能です。
- 日時も自動で保存でき、作業記録や報告履歴として活用できます。
- シンプルな仕組みで、業務の可視化や確認作業が効率化されます。
業務での履歴管理や、フォーム操作のログ取得などに、ぜひご活用ください。
ここまでお読みいただきありがとうございました。参考になれば幸いです。
スクールの紹介
最後に宣伝をさせてください。
技術で未来を切り拓く―あなたの夢を現実にするプログラミングスクール
Webデザインやプログラミングで成功を目指している方々にとって、このオンラインスクールは夢を叶えるための最適な場所です。皆さんのキャリアを次の段階へと引き上げるためにデザインされたこのスクールは、一人ひとりの成功を心から願い、それを実現するための全てを提供しています。ここでは、このスクールの魅力について詳しくご紹介します。
◆圧倒的な費用対効果
このオンラインプログラミングスクールは、Web系教育において最高の費用対効果を提供しています。多くの高額スクールが存在する中で、ここではリーズナブルな価格で、質の高い教材、無限のサポート、そして実際に市場で求められるスキルの習得機会を提供しています。
◆現役フリーランスの講師陣
講師たちは全員、現役のフリーランスプロフェッショナルです。市場で活躍している講師から直接、最新のトレンドや実践的なスキルを学べるのは、このスクールの大きな特徴です。
◆柔軟な学習コース
固定のコースがなく、学習者の興味やニーズに応じて自由に学習できます。進路変更も自由で、最低契約期間は1ヶ月という柔軟性を持っています。自分のペースで、自分に合った学習が可能です。
◆無制限の添削とサポート
理解できるまで、そして満足するまで、無制限に添削と質問への回答を提供しています。進路相談や技術面以外の相談にも対応しており、全面的にサポートします。
◆社長から学べる貴重な機会
デザイナー、プログラマー、ディレクター、マーケターとして豊富な経験を持つ社長から直接学べるのも、このスクールの特別な点です。他のスクールでは得られない、貴重な機会です。
◆実績作りへの徹底的なサポート
就職、転職、フリーランスとして成功するためには、高品質な実績が必要です。生徒の作品レベルを最大限に高め、市場で求められる実績を作り上げることに力を入れています。案件を取得できない生徒には、直接案件を提供することもあります。
◆メッセージからの約束
高額な授業料を支払わせて結果を出せないスクールとは違い、物理的なサポートは提供できないかもしれませんが、継続的な努力を通じて最高の結果を出せるようにサポートします。一緒に不正なスクールを撲滅し、あなたの夢を実現しましょう。
このプログラミングスクールは、Webデザインやプログラミングでの成功を目指す方々に必要な全てを備えています。今こそ、このコミュニティに参加し、あなたのキャリアを加速させる時です。
詳しくはこちら↓