仕事に使えるエクセルVBA 勤務割を作ってみよう①
勤務割ブック作成
例として、10月の勤務割を作成します。
タブのSheet1を10月に変更
セルA1に10月
セルA2に氏名
セルB2~AF2まで日付を入力していきます。
マクロ作成の準備
表示⇒マクロから マクロの記録をクリックし、マクロの記録を表示させ[OK]をクリックします。
その後、表示⇒マクロをクリックし、[記録終了]を選択します。
再度、表示⇒マクロをクリックし[マクロの表示]を選択すると、マクロが表示されますので、そのまま今回はマクロ名Macro1を編集しましょう。
VBAコード入力画面が表示されます。
挿入⇒ユーザーフォームを選択
ユーザーフォームが作成されます。
ツールボックスからコマンドボタン(abの表示)を選択し、ユーザーフォームにコマンドボタンを貼り付けます。
左下のボックスがプロパティと言います。
このなかのCaptionを変更するとフォームの文字が変更されます。例えばUserForm1ををクリックし、このプロパティのCaptionを「選択ボタン」と変更すると、フォーム左上のUserForm1が選択ボタンと変更されます。
同じ様にCommandButtonも変更できますので、CommandButton1のCaptionを「日勤」と変更し、CommandButton2を追加してCaptionを「夜勤」と変更、CommandButton3を追加してCaptionを「削除」と変更しましょう。
次に、このフォームからエクセルシートに入力できるように、フォームのプロパティのShowModalをFalseに変更します。
コードを作成
フォームのコマンドボタン「日勤」をダブルクリックすると、コードが入力できるようになります。
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を閉じます。
元のエクセル画面に戻って、再度 表示⇒マクロ⇒マクロの表示をクリックし、マクロのオプション(O)をクリックします。
マクロオプションが表示されますので、ショートカットキーを設定します。例えばiを入力しOKとすると、CTRL+iキーで先程作成したフォームが表示されます。
最後に、Excelマクロ有効ブックで保存し完了です。
この記事が気に入ったらサポートをしてみませんか?