同じデータを各セルに簡単に入力できる「データスタンプVBAソフト」です。ユーザーフォームを使い、コードの行数もわずかで作ることが出来ます。
こんにちは、じゅんぱ店長(@junpa33)です。
今回は、「データスタンプVBAソフト」のVBAコードの説明を行います。
簡単なコードですので、すぐに出来てしまうと思います。
VBAあまりに馴染みのない方も、一度チャレンジしてみてください。
どんなソフトかというのは、こちら↓でご覧いただけます。
1クリック!エクセルVBAで同一データを複数セルに簡単入力コンテンツ
「データスタンプVBAソフト」はこれです
ソフトの作成については
エディタのプロジェクトエクスプローラーのところで言うと、矢印の部分にVBAコードを記述します。
VBAでソフトを組み立てる
標準モジュールに記述する
標準モジュールは「DStamp」という名前にしています。
- シート上で選択したセルに、ユーザーフォーム「StampBox」で入力したデータを挿入するコード
- ユーザーフォーム「StampBox」の4方向の方向キーの動作を規定するコード
を記述します。
Option Explicitとは何、必要? VBA記述で不注意なエラーを防止する
Option Explicit
Private Acell As Range
Sub アクティブセルセット()
ThisWorkbook.Activate
Set Acell = ActiveCell
End Sub
ユーザーフォームへ入力したデータを代入します。
部品化プロシージャーでCallステートメントは必須Sub データスタンプ()
Call DStamp.アクティブセルセット
Acell.Value = StampBox.挿入data.Value
End Sub
最上部にあるときはコードを実行しません。
「Offset」の使い方については、
Offsetプロパティは指定範囲を移動させるを参考にしてください。
Sub 上移動()
Call DStamp.アクティブセルセット
If Acell.Row = 1 Then Exit Sub
Acell.Offset(-1, 0).Select
End Sub
最下部にあるときはコードを実行しません。
Sub 下移動()
Call DStamp.アクティブセルセット
If Acell.Row = Rows.Count Then Exit Sub
Acell.Offset(1, 0).Select
End Sub
最左部にあるときはコードを実行しません。
Sub 左移動()
Call DStamp.アクティブセルセット
If Acell.Column = 1 Then Exit Sub
Acell.Offset(0, -1).Select
End Sub
最右部にあるときはコードを実行しません。
Sub 右移動()
Call DStamp.アクティブセルセット
If Acell.Column = Columns.Count Then Exit Sub
Acell.Offset(0, 1).Select
End Sub
ユーザーフォームモジュールに記述する
ユーザーフォーム「StampBox」にオブジェクトのデザインとコードを記述します。
DStampモジュールの「データスタンプ」プロシージャーを実行します。
Private Sub Stamp実行_Click()
Call DStamp.データスタンプ
End Sub
Private Sub データクリア_Click()
挿入data.Value = ""
End Sub
DStampモジュールの「右移動」プロシージャーを実行します。
Private Sub 右矢印_Click()
Call DStamp.右移動
End Sub
DStampモジュールの「下移動」プロシージャーを実行します。
Private Sub 下矢印_Click()
Call DStamp.下移動
End Sub
DStampモジュールの「左移動」プロシージャーを実行します。
Private Sub 左矢印_Click()
Call DStamp.左移動
End Sub
DStampモジュールの「上移動」プロシージャーを実行します。
Private Sub 上矢印_Click()
Call DStamp.上移動
End Sub
シートモジュールに記述する
シートモジュールには、シートを開いた時のイベントを記述します。
Private Sub Worksheet_Activate()
StampBox.Show vbModeless
End Sub
このコードは、イベントを起こしたい(シートを開いたときに発生させたい)シートのモジュールに記述します。
ブックモジュールに記述する
BOOKを開いた時のイベントを記述します。BOOKを起動したときは最初から表示されるようにしています。
ユーザーフォームが表示されるイベントコードを記述します。
Private Sub Workbook_Open()
StampBox.Show vbModeless
End Sub
データスタンプVBA 作り方のまとめ
このように短いVBAコードでも ”ちょっと便利物” なんか作ったりすることが出来ます。
ほかにも例えば ”印刷ボタン” だけのユーザーフォームで、そのシートをプリントするとか ”CLEAR” ボタンで、あるエリアを消去するとか。
特に、今まであまりVBAに馴染みの無かった人は、このような簡単な実用的なところから触っていくのもアリだと思います。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。