顧客IDを自動的に作る
マクロ 73回
顧客IDを自動入力
データを入力する時に、このサンプルでは顧客IDが Aで始まる4ケタの数値がですが、
いったい前回は、何番だったか、あるいは何番までデータを入れていたかなどと
言うことを、データベースを見て、目視で番号確認するなどということは、とても面倒くさくてやってられません。
できることならばマクロでお任せして自分は入力したくないという気持ちがあります。
顧客IDを手入力ではなく自動で入力できるようにする方法を考えることにします。
(サンプルファイルは、こちらから
マクロ73回サンプルデータ)
【転記処理Part3】数値を文字列として入れる
1.こちらのサンプルでは、データは3行まで入っています。

2.このような顧客 ID 数値文字列をどのように入れるかというマクロをコードにしてきたいと思います。

3.入力用シートには、顧客IDと書いたセルの隣に、IDが入力されています。

4. 例えば選択範囲に連番を連続した ID を入れる場合です。

データシートに自動で連続した番号を入力する
5. こちらは、データシートですが、データシートに連続番号を入れる場合は、行番号という連続した番号がありますからこの行番号を使いたいですね。

6. Selectionの行番号から-2すれば、取得したい値4を得ることができます。

7.数値を4桁表示にするために、書式を設定します。
.Value = MasterRange.Row - 2 .NumberFormatLocal = "@" .Value = Format(.Value, "0000")

8. これで、データシートには、0004と入力されました。

数値の先頭にA
9. 数値の先頭にAとつけるには、すでに文字列として書式設定しているので、 .Value = Format(.Value, "a0000") としてやるだけでOKです。

10.前回のマクロコードで、データシートのMasterRangeという変数をセットしました。これと数字を文字列で入れるマクロのSelectionは同じです。

11.そこで、Selectionを MasterRangeという変数に置き換えます。これで動作することを確認しました。

12. 次に、この自動で顧客IDを入力するコードを前回の検索してデータを転記するマクロに追加してやります。

転記するコード修正
13. 自動で顧客IDを入力するコードを追加すると、その次のFor Nextのコードは、0 To 8 ではなく、1 To 8 になります。

14. そして、入力シートとデータシートの顧客IDは同じですから、
nyuuryoku.Value = MasterRange.Value
と1行コードを追加しておきます。

15. では、入力シートに戻り新しいデータを記入し、転記マクロを実行します。

16.入力シートの顧客IDにa0004というIDが入力されました。

17.ということは、データシートの方にも、顧客データが転記されていることになります。確認した図が以下です。

次回は、データを検索するマクロを作成します。