![見出し画像](https://assets.st-note.com/production/uploads/images/123873578/rectangle_large_type_2_0571e2ade72b0d8d987e5a24ebd82548.png?width=800)
仕事に使えるエクセルVBA 勤務割を作ってみよう①
勤務割ブック作成
例として、10月の勤務割を作成します。
タブのSheet1を10月に変更
セルA1に10月
セルA2に氏名
セルB2~AF2まで日付を入力していきます。
![](https://assets.st-note.com/img/1701931433705-9pTGi19IfO.jpg?width=800)
マクロ作成の準備
表示⇒マクロから マクロの記録をクリックし、マクロの記録を表示させ[OK]をクリックします。
その後、表示⇒マクロをクリックし、[記録終了]を選択します。
![](https://assets.st-note.com/img/1701931691571-qnWRaAc9xR.png?width=800)
再度、表示⇒マクロをクリックし[マクロの表示]を選択すると、マクロが表示されますので、そのまま今回はマクロ名Macro1を編集しましょう。
![](https://assets.st-note.com/img/1701932005148-Yt6qtei7bl.png)
VBAコード入力画面が表示されます。
![](https://assets.st-note.com/img/1701932160331-yp3EGqVF0E.png?width=800)
挿入⇒ユーザーフォームを選択
![](https://assets.st-note.com/img/1701932244749-hASbeVl0YE.png)
ユーザーフォームが作成されます。
![](https://assets.st-note.com/img/1701932412896-sBdv7IUZXQ.png?width=800)
ツールボックスからコマンドボタン(abの表示)を選択し、ユーザーフォームにコマンドボタンを貼り付けます。
![](https://assets.st-note.com/img/1701933737740-p1dGHDIKpn.png)
左下のボックスがプロパティと言います。
このなかのCaptionを変更するとフォームの文字が変更されます。例えばUserForm1ををクリックし、このプロパティのCaptionを「選択ボタン」と変更すると、フォーム左上のUserForm1が選択ボタンと変更されます。
同じ様にCommandButtonも変更できますので、CommandButton1のCaptionを「日勤」と変更し、CommandButton2を追加してCaptionを「夜勤」と変更、CommandButton3を追加してCaptionを「削除」と変更しましょう。
![](https://assets.st-note.com/img/1701933926703-Cs7MUdr4Wn.png?width=800)
![](https://assets.st-note.com/img/1701934196120-DiI3YIRXCl.png?width=800)
次に、このフォームからエクセルシートに入力できるように、フォームのプロパティのShowModalをFalseに変更します。
![](https://assets.st-note.com/img/1701934622228-8jOMflLNPp.png)
コードを作成
フォームのコマンドボタン「日勤」をダブルクリックすると、コードが入力できるようになります。
![](https://assets.st-note.com/img/1701935846765-rtizEGbHac.png)
Private Sub CommandButton1_clickとEnd Subの間に下記のコードを追加してください。
Selection = "日"
![](https://assets.st-note.com/img/1701934790484-8u6LeuZp5W.png?width=800)
CommandButton1をクリックすると下図のような選択ができますので、次にCommandButton2を選択してください。
![](https://assets.st-note.com/img/1701935091053-YiSb6K1DCv.png?width=800)
お分かりの通り、CommandButton2はフォーム上の「夜勤」となりますので、ここには
Private Sub CommandButton2_clickとEnd Subの間に下記のコードを追加してください。
Selection = "夜"と記述します。
同じ様にCommandButton3は文字削除となりますので、Private Sub CommandButton3_clickとEnd Subの間に下記のコードを追加してください。
Selection.ClearContentsと記述します。
![](https://assets.st-note.com/img/1702006050779-eY7Ci4fz4i.png?width=800)
動作確認
動作確認します。緑色の三角形をクリックしてください。
![](https://assets.st-note.com/img/1702006079119-F7zZnx4Zno.png?width=800)
セルを選択し選択ボタンの「日勤」を押すと、選択したセルに[日]が入力され、「削除」ボタンを押すと削除されます。
ショートカットキーでフォームを表示
標準モジュールのModule1をクリックし、Sub Macro1()の次の行にUserForm1.show と文字を追加します。これはさっき作成したフォームを表示しなさいという命令です。記入が終わったら、このMicrosofr Visual Basic for applicationを閉じます。
![](https://assets.st-note.com/img/1701949597564-lpy5yne5Tl.png?width=800)
元のエクセル画面に戻って、再度 表示⇒マクロ⇒マクロの表示をクリックし、マクロのオプション(O)をクリックします。
![](https://assets.st-note.com/img/1701949807822-JvkeNsXobt.png)
マクロオプションが表示されますので、ショートカットキーを設定します。例えばiを入力しOKとすると、CTRL+iキーで先程作成したフォームが表示されます。
![](https://assets.st-note.com/img/1701949938963-W1wgkFXDpn.png)
![](https://assets.st-note.com/img/1701950155022-wb3zE0J74Q.png?width=800)
最後に、Excelマクロ有効ブックで保存し完了です。
この記事が気に入ったらサポートをしてみませんか?