VBAでシートコピー+1

VBAで簡単なマクロを組んでみたので備忘録も兼ねてメモをする。

私が業務上で管理しているエクセルだが、
シート名が数字で、コピーをして+1の値を入れるケースが多い。

請求書、見積書、発注書などなど、殆どがそのような形式になっており、
右クリックでコピーをしてシートを末尾に移動、でシート名+1に変更、
ついでに言うと作成日に今日の日付を入れるという一連の動作であるが、

その一連の動作自体は5秒~10秒ほどで完了はするが、
月初で請求書発行の時期などでは、その動作を百回近く繰り返す事になり
かったるいな~と思ってはおりました。

という訳で、VBAで上記動作をまとめて
ショートカットキーを割り当てる事にしてみた。
(あまり使わない「Ctrl+Q」を割り当てる)

で、ちょっと調べながら下記のようなかたちで記述をした。

 

で実行すると下記のような結果。

■実行前
VBA実行前

■実行後
VBA実行後

残念ながら、変数009+1=010が10と認識されてしまうようで、
010と表示させたいのに10となってしまう。

別に10でも良さそうなものであるが、
これまでずっと3桁で統一をしてきたので何としても修正したい。

で調べたところFormat関数というものがあり、
変数に書式を設定をする事ができた。

また変数の宣言時にLong型にしていたが、String型に変更をする。
VBAの変数のデータ型についてはこちら

で出来上がったコードが下記。

 

で、実行するとうまく000型、3桁で表示ができた。

何とも爽快で、とりあえずCtrl+Q連打しました。

VBA完成後

VBAはすぐ結果が返ってくるので楽しいです。