見出し画像

仕事に使えるエクセルVBA 勤務割を作ってみよう①

勤務割ブック作成

例として、10月の勤務割を作成します。
 タブのSheet1を10月に変更
 セルA1に10月
 セルA2に氏名
 セルB2~AF2まで日付を入力していきます。

Book作成

マクロ作成の準備

表示⇒マクロから マクロの記録をクリックし、マクロの記録を表示させ[OK]をクリックします。
その後、表示⇒マクロをクリックし、[記録終了]を選択します。

マクロの記録

再度、表示⇒マクロをクリックし[マクロの表示]を選択すると、マクロが表示されますので、そのまま今回はマクロ名Macro1を編集しましょう。

Macro1編集

VBAコード入力画面が表示されます。

挿入⇒ユーザーフォームを選択

ユーザーフォーム作成

ユーザーフォームが作成されます。

ユーザーフォーム

ツールボックスからコマンドボタン(abの表示)を選択し、ユーザーフォームにコマンドボタンを貼り付けます。

コマンドボタンを作成

左下のボックスがプロパティと言います。
このなかのCaptionを変更するとフォームの文字が変更されます。例えばUserForm1ををクリックし、このプロパティのCaptionを「選択ボタン」と変更すると、フォーム左上のUserForm1が選択ボタンと変更されます。
同じ様にCommandButtonも変更できますので、CommandButton1のCaptionを「日勤」と変更し、CommandButton2を追加してCaptionを「夜勤」と変更、CommandButton3を追加してCaptionを「削除」と変更しましょう。

プロパティ
Caption

次に、このフォームからエクセルシートに入力できるように、フォームのプロパティのShowModalをFalseに変更します。

ShowModal

コードを作成

フォームのコマンドボタン「日勤」をダブルクリックすると、コードが入力できるようになります。

Private Sub CommandButton1_clickとEnd Subの間に下記のコードを追加してください。
Selection = "日"

CommandButton1をクリックすると下図のような選択ができますので、次にCommandButton2を選択してください。

お分かりの通り、CommandButton2はフォーム上の「夜勤」となりますので、ここには
Private Sub CommandButton2_clickとEnd Subの間に下記のコードを追加してください。
Selection = "夜"と記述します。
同じ様にCommandButton3は文字削除となりますので、Private Sub CommandButton3_clickとEnd Subの間に下記のコードを追加してください。
Selection.ClearContentsと記述します。

コード入力

動作確認

動作確認します。緑色の三角形をクリックしてください。


実行

セルを選択し選択ボタンの「日勤」を押すと、選択したセルに[日]が入力され、「削除」ボタンを押すと削除されます。

ショートカットキーでフォームを表示

標準モジュールのModule1をクリックし、Sub Macro1()の次の行にUserForm1.show と文字を追加します。これはさっき作成したフォームを表示しなさいという命令です。記入が終わったら、このMicrosofr Visual Basic for applicationを閉じます。

Module1

元のエクセル画面に戻って、再度 表示⇒マクロ⇒マクロの表示をクリックし、マクロのオプション(O)をクリックします。

マクロ

マクロオプションが表示されますので、ショートカットキーを設定します。例えばiを入力しOKとすると、CTRL+iキーで先程作成したフォームが表示されます。

マクロオプション
エクセル画面

最後に、Excelマクロ有効ブックで保存し完了です。

この記事が気に入ったらサポートをしてみませんか?