オススメの暗号資産交換所
みっんな使ってる

イーサリアムが安い

暗号資産銘柄の取り扱い数No.1

オススメのブログテーマ
早めに始めないと損

誰でも1,500円もらえる

当サイトのレンタルサーバー

『ながら読書』最強!

みっんな使ってる
イーサリアムが安い
暗号資産銘柄の取り扱い数No.1
早めに始めないと損
『ながら読書』最強!
Excelで日々のシートを作る仕事が面倒くさい。自動化できないかな?
この記事ではこんなお悩みを解決します。
どうもヤドリです。
Twitter:(@yadori816)
【ヤドリブログからのお願い】
最後まで読んでこの記事悪くないねぇと思われたら、以下の商品リンクから商品購入にご協力お願いします。
いやいや、購入はコーヒーじゃなくても大丈夫です。
それではよろしくお願いいたします。
最後にお得な情報をお届けいたします。
ぜひ最後まで読んでください。
よろしくお願いいたします。
Excelマクロをご存知でしょうか?
Excelマクロが使えるようになれば、業務のほとんどが自動化されますよ。
もしも、自動的に処理されたら、処理する量がたくさんあっても辛くないですよね。
実は私も最初はExcelマクロを使えませんでしたが、少しずつ実践して使えるようになりましたよ。
今回の記事はExcelでの業務が多い人におすすめです。
Excelマクロが使えれば、こんなことができるんだと知っていただければ幸いです。
実際に使っていただければ、私がもっと喜びますよ。
この記事の内容です。
ぜひ最後までお読みください。
早速ですが、Excelマクロのコードを紹介します。
Option Explicit
Sub 来月の日々シートが右側に追加される()
Dim ws As Worksheet
Dim i As Integer
For i = 1 To 31
Worksheets.Add After:=Worksheets(Worksheets.Count)
Set ws = ActiveSheet
ws.Name = Format(DateSerial(Year(Date), Month(Date) + 1, i), "yyyy.m.d")
If DateSerial(Year(Date), Month(Date) + 1, i) = DateSerial(Year(Date), Month(Date) + 2, 1) Then
Exit For
End If
Next i
End Sub
コピペして実行すれば使えますよ。
来月の日々シートが出来上がります。
Excelマクロを使った事がないという方は、こちらの記事を参考にしてください。
Excelマクロを勉強するのにおすすめの本はこちらです。
ヤドリはExcelマクロを独学して、Excelマクロが使えるようになってから、読みましたが、
まさに「最初からそう教えてくれればいいのに!」に共感いたしました。
日々シートは日報や勤怠表を作るときに便利です。ポイントはシート名にひっけが入っているところです。
もしも、シートに日付が入ってないとしたら、どうなりますか?
シートの中身を見ないと、目的のシートかどうかわかりませんよね。
Excelブックを開いたときに、シートに日付があることで、すぐに目的のシートを表示させることができます。
そしてすぐにその中身を確認したり、追記したり、仕事をすることができます。
今回紹介したExcelマクロは、実はシートを作成することだけが楽になったわけではないんです。
シートの中身を集計するときにも便利になったのです。
なぜなら、シートの名前のつけ方に規則性があるからです。
たとえば、日付にもいろいろな書き方がありますよね。
2022.4.6とか、2022年4月6日とか、4/6とか、伝えたい内容は同じですが、表現の仕方は様々です。
一人でやっていても、書き方が変わってきますよね。
複数の人が関わると、もっといろいろな表現が出てくるかもしれません。
ところが、自動で日付をつけると表現は一定になります。
それは自動化するために規則性を持たせなければならないからです。
日付が必ず2022.4.6といったように”yyyy.m.d”の書式なら、別のシートの値をリンクするときにシート名を簡単に指示する事ができますよ。、
Excelマクロのプログラムの解説をします。
英語ばかりなので、取り掛かりにくいですよね。
とはいえ一応全てに意味があります。
自分がExcelで処理したい内容をパソコンに伝えます。
それって、人間に教えるのと同じですよね。
丁寧にひとつずつ処理の流れを教えていきましょう。
パソコンは文句言わないので楽です。
でも、教え方が間違っていても「これあってますか?」とか言わないので注意が必要です。
コード | 意味 |
Option Explicit | 変数の宣言を強制するおまじないです。 |
Sub 来月の日々シートが右側に追加される() | マクロの始まりです。ブログラムの名前も付けます。 |
Dim ws As Worksheet | 変数を宣言しています。ワークシートに名前を付けるための変数です。 |
Dim i As Integer | 変数を宣言しています。繰り返しの処理をしたくてつけています。 |
For i = 1 To 31 | 繰り返し処理をします。回数は31回です。月の最大日数が31日だからです。 |
Worksheets.Add After:=Worksheets(Worksheets.Count) | ワークシートを追加します。追加する場所は一番右側です。 |
Set ws = ActiveSheet | 追加したシートをwsという変数に充てます。 |
ws.Name = Format(DateSerial(Year(Date), Month(Date) + 1, i), “yyyy.m.d”) | シートの名前を決めます。来月の日付をつけます、日は繰り返し処理の数が入ります。 |
If DateSerial(Year(Date), Month(Date) + 1, i) = DateSerial(Year(Date), Month(Date) + 2, 1) Then | 判定プログラムの始まりです。シートの名前が2か月後の1日と同じになるか判定します。True(はい、Yes、〇)かFalse(いいえ、No、×)です。 |
Exit For | Trueの判定の処理をします。繰り返しの命令を抜けます。 |
End If | 判定プログラムの終わりです。 |
Next i | 繰り返し処理の終わりです。 |
End Sub | マクロの終わりです。 |
プログラムを編集してみましょう。
もしもプログラムが動かなくなったら困りますよね。
一応、新しいExcelファイルでプログラムの編集を行いましょう。
自分なりに編集して、いろいろな事を試してみましょう。
自然にスキルが身につきますよ。
コード 青いマーカーは編集先では消します。 | 編集する 赤いマーカー部分を編集します。 | 意味 |
Option Explicit | 空白 | 変数の宣言を強制するおまじないをしません。おすすめしません。 |
Sub 来月の日々シートが右側に追加される() | Sub WorkSheet.add() | プログラムの名前を英語にします。意味はありません。 |
Dim ws As Worksheet | Dim WSheet As Worksheet | 変数の名前を変えます。意味はありません。 |
Dim i As Integer | Dim n As Integer | 変数の名前を変えます。意味はありません。 |
For i = 1 To 31 | For n= 1 To 10 | 繰り返しの処理を10回で終わります。結果が変わります。 |
Worksheets.Add After:=Worksheets(Worksheets.Count) | Worksheets.Add | ワークシートが追加される場所が一番左になります。 |
Set ws = ActiveSheet | Set WSeet = ActiveSheet | 変数の名前を変えます。意味はありません。 |
ws.Name = Format(DateSerial(Year(Date), Month(Date) + 1, i), “yyyy.m.d”) | WSeet.Name = Format(DateSerial(Year(Date), Month(Date) + 0, n), “yyyy年m月d日”) | 当月の日々シートが出来上がります。日付の表現が変わります。2022年4月6日の表現になります。 |
If DateSerial(Year(Date), Month(Date) + 1, i) = DateSerial(Year(Date), Month(Date) + 2, 1) Then | If DateSerial(Year(Date), Month(Date) +0, n) = DateSerial(Year(Date), Month(Date) + 1, 1) Then | シートの名前が1か月後の1日と同じになるか判定します。 |
Exit For | Exit For | 変更できません。 |
End If | End If | 変更できません。 |
Next i | Next i | 変更できません。 |
End Sub | End Sub | 変更できません。 |
今回はExcelマクロでシートを作成する事について紹介しました。
自分の業務に取り入れる事はできましたでしょうか?
自動化できたらラッキーくらいの軽い気持ちでチャレンジしてみましょう。
それでは「Excelマクロで日々シートを自動作成【コピペで使える】」でした。
ヤドリ戻ります。
コメント