複数セルに簡単に入力できる「データスタンプVBAソフト」の作り方

stampboxeyecatch2

こんにちは、じゅんぱ店長(@junpa33)です。

 

今回は、「データスタンプVBAソフト」のVBAコードの説明を行います。

簡単なコードですので、すぐに出来てしまうと思います。

 

どんなソフトかというのは、こちら↓でご覧いただけます。

1クリック!エクセルVBAで同一データを複数セルに簡単入力する

 

「データスタンプVBAソフト」はこれです

 

datastamp001a

 

ソフトの作成については

エディタのプロジェクトエクスプローラーのところで言うと、矢印の部分にVBAコードを記述します。

datastamp009a

 

組み立てのVBAコード

 

標準モジュールに書くこと

 

標準モジュールは「DStamp」という名前にしています。

シート上で選択したセルに、ユーザーフォーム「StampBox」で入力したデータを挿入するコード

ユーザーフォーム「StampBox」の4方向の方向キーの動作を規定するコード

を記述します。

 

プロシージャーで使う変数を定義します。

Private Acell As Range
Sub アクティブセルセット()
Set Acell = ActiveCell
End Sub

 

アクティブセルにデータを挿入します。

ユーザーフォームへ入力したデータを代入します。

Sub データスタンプ()

アクティブセルセット
Acell.Value = StampBox.挿入data.Value

End Sub

 

上ボタンでセルを移動します。最上部にあるときはコードを実行しません。

「Offset」の使い方については、

エクセルVBA Offsetの使い方。セルや選択範囲を移動する」を参考にしてください。

Sub 上移動()
アクティブセルセット
If Acell.Row = 1 Then Exit Sub
Acell.Offset(-1, 0).Select

End Sub

 

下ボタンでセルを移動します。最下部にあるときはコードを実行しません。

Sub 下移動()
アクティブセルセット

If Acell.Row = 1048576 Then Exit Sub
Acell.Offset(1, 0).Select

End Sub

 

左ボタンでセルを移動します。最左部にあるときはコードを実行しません。

Sub 左移動()
アクティブセルセット

If Acell.Column = 1 Then Exit Sub
Acell.Offset(0, -1).Select

End Sub

 

右ボタンでセルを移動します。最右部にあるときはコードを実行しません。

Sub 右移動()
アクティブセルセット

If Acell.Column = 16384 Then Exit Sub
Acell.Offset(0, 1).Select

End Sub

 

ユーザーフォームモジュールに書くこと

 

ユーザーフォーム「StampBox」にオブジェクトのデザインとコードを記述します。

 

オブジェクトウインドとプロパティ

 

ユーザーフォーム「StampBox」のプロパティ

datastamp012_1a

 

テキストボックス「挿入data」のプロパティ

datastamp012_2a

 

ボタン系のプロパティ

datastamp012_3a

 

モジュールに記述

 

「Stamp」ボタンを押すとDStampモジュールの「データスタンプ」プロシージャーを実行します。

Private Sub Stamp実行_Click()
DStamp.データスタンプ
End Sub

 

「CLEAR」ボタンを押したときの処理コード

Private Sub データクリア_Click()
挿入data.Value = “”
End Sub

 

「右矢印」ボタンを押すとDStampモジュールの「右移動」プロシージャーを実行します。

Private Sub 右矢印_Click()
DStamp.右移動
End Sub

 

「下矢印」ボタンを押すとDStampモジュールの「下移動」プロシージャーを実行します。

Private Sub 下矢印_Click()
DStamp.下移動
End Sub

 

「左矢印」ボタンを押すとDStampモジュールの「左移動」プロシージャーを実行します。

Private Sub 左矢印_Click()
DStamp.左移動
End Sub

 

「上矢印」ボタンを押すとDStampモジュールの「上移動」プロシージャーを実行します。

Private Sub 上矢印_Click()
DStamp.上移動
End Sub

 

 

シートモジュールに書くこと

 

Sheetを開いた時のイベントを記述します。

Private Sub Worksheet_Activate()
StampBox.Show vbModeless
End Sub

 

このコードは、イベントを起こしたいシートのモジュールに記述します。

ブックモジュールで、シートの変化に対して「ユーザーフォームを表示させる」という記述の方法もあります。

 

けれどもこの方法だと、 ”このユーザーフォームを使わない時” もシートを移動したりする度にいちいち表示されてしまいます。

 

その場合、結構鬱陶しく感じるので、個人的には敢えてこの方法の方がいいかと思っています。

 

ブックモジュールに書くこと

 

BOOKを開いた時のイベントを記述します。BOOKを起動したときは最初から表示されるようにしています。

ユーザーフォームが表示されるイベントコードを記述します。

Private Sub Workbook_Open()
StampBox.Show vbModeless
End Sub

 

 作り方のまとめ

 

このように短いVBAコードでも ”ちょっと便利物” なんか作ったりすることが出来ます。

ほかにも例えば ”印刷ボタン” だけのユーザーフォームで、そのシートをプリントするとか ”CLEAR” ボタンで、あるエリアを消去するとか。

 

特に、今まであまりVBAに馴染みの無かった人は、このような簡単な実用的なところから触っていくのもアリだと思います。

 

このソフトを入手するにはこちらから行うことが出来ます。

こちら↓でダウンロードすることでソフトを入手することが出来ます。

 

ただし、こちらの方はVBAコードを保護していますので、使う側でのVBAコードのカスタマイズを行うことはできません。

 

ここの記事説明とダウンロードしたソフトで、早々に利用していただくことが出来ます。

 

 

“データスタンプVBA” をダウンロード datastamp.zip – 1300 回のダウンロード – 22 KB

 

このソフトはご自分で業務でお使いいただくのはフリーですが、

 

転載や転売については許可しておりませんので、ご使用にならないよう固くお断りいたします。

 

このテーマ「プチなVBAコード」の記事シリーズは他にもこんなもの↓があります。

「プチなVBAコード」の記事一覧を開く

 

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAを独学で習得するためのポイントは?良書との出会いは重要

 

エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。

 

エクセルVBAを使い始めて、始めのうちに知っておきたい内容を纏めてみました。

「VBA最速理解」の記事一覧を開く

 

今回の記事はここまでです。   最後までご覧いただき有難うございました。

 

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。