あけましておめでとうございます。
2026年1月11日、新年最初のブログ投稿です。
今年は 「積み重ね」 をテーマに、
技術の学習や制作活動を、無理せず、でも止めずに続けていきたいと思っています。
VBAやWeb制作など、
「自分で考えて、手を動かして理解すること」を大切にする一年にしたい。
派手な成果はすぐに出なくてもいい。
昨日の自分より、ほんの少しでも前に進めていればOK🍃
そんなスタンスで、今年もブログを書いていきます。
🌿しんどい気持ちから、少し前を向けたきっかけ
正直に書くと、
新年早々ずっと前向きだったわけではありません。
仕事のことでうまくいかない感覚が続いて、
「自分、全然できてないな…」と思ってしまい、
気持ちが沈んだまま 半日くらい何もできずに寝込んでしまった日 もありました。
頭では
「勉強しなきゃ」
「手を動かさなきゃ」
と思っているのに、体がついてこない。
そんな自分にさらに落ち込んで、
何もできなかったこと自体が、またしんどくなる。
それでも、このまま一日が終わるのは嫌で、
気持ちを切り替えるために コワーキングスペースに行くことにしました。
そこでやったのは、
気合を入れた勉強というより、
VBAで自動化システムを作りながら、手を動かすことでした。
🌿 自動化システムを作りながら学んだこと
作っていたのは、
VBAの理解を深めるための学習用の自動化システムです。
実務でそのまま使っているわけではありませんが、
「実際にありそうな業務」を想定して作ることで、
理解の深さがまったく違うと感じました。
例えば、
- 入力されたデータを読み取る
- 担当者名ごとにフォルダを作成する
- ファイルを自動で振り分ける
- 手作業の流れをコードで再現する
うまくいかないところで止まり、
調べて、直して、また動かす。
途中で模擬試験にも触れてみると、
「あ、これさっき書いてた処理と同じ考え方だ」
と、理解がつながる瞬間がありました。
一気に元気になったわけではありません。
でも、
しんどかった気持ちが、少しだけ前を向いた。
「今日はダメな日だった」ではなく、
「ちゃんと前に進めた日だった」
そう思えたことが、自分にとってはすごく大きかったです。
そして、その中で実際に理解が深まった内容が、次のポイントです。
🌿 昨日〜今日の VBA 学習で、特に理解が深まったこと
① Date 関数と組み合わせて、月末を取得する考え方
今回 DateSerial を使った処理では、Date 関数や Year、Month 関数と組み合わせて書いていました。
実際に使った形は、こんな感じです。
DateSerial(Year(Date), Month(Date) + 1, 0)
最初は少しややこしく感じましたが、
分解して考えるとシンプルでした。
Date→ 今日の日付Year(Date)→ 今日の「年」Month(Date)→ 今日の「月」+1→ 来月0→ 前月末(=今月末)
「0日目は前月の末日になる」という仕様と、Date 系の関数を組み合わせることで、
「今月末」を自動で取得できる。
模擬試験の問題と、
実際に書いていたコードがつながった瞬間でもあり、
「あ、こういうことか」と腑に落ちました。
| 欲しい日付 | 書き方 |
|---|---|
| 今月月初 | DateSerial(Y, M, 1) |
| 今月月末 | DateSerial(Y, M+1, 0) |
| 来月月初 | DateSerial(Y, M+1, 1) |
| 来月月末 | DateSerial(Y, M+2, 0) |
② Boolean は「状態を覚えておくため」に使った
今回の自動化を作る中で、
Boolean 変数の役割について、ひとつ大きな気づきがありました。
これまでは
「True / False を判定するためのもの」
という認識でしたが、
実際に使ってみて、
処理の途中で起きたことを“覚えておくため”に使うもの
だと理解できました。
今回の処理では、
- 新しい請求書を作り始めるタイミング
- その請求書を保存して締めるタイミング
この2つを、
ループの中で判断する必要がありました。
If 文でその場の条件を見るだけでなく、
一度判定した結果をフラグとして保持し、
後続の処理で使う。
この考え方が分かってから、
処理の流れを組み立てやすくなったと感じています。
- If は「今その場」の判断
- Boolean は「状態を覚えておく」ためのもの
この違いを、
実際に手を動かしながら理解できたのが、
今回の大きな収穫でした。
③ 最終行取得は「Excelの↑キー」の感覚で覚えた
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
この書き方は、
Excelで「Ctrl + ↑キー」を押したときの動きと同じ感覚だと理解しました。
Rows.Count→ シートの一番下.End(xlUp)→ ↑方向にデータのあるセルまで一気に移動
そう考えると、
コードの動きが頭の中でイメージしやすくなりました。
Excel操作と結びつけて覚えることで、
暗記ではなく「理解」として残った感覚があります。
🌿 まとめ|立ち止まっても、積み重ねていく一年に
仕事でうまくいかず、
自分に自信が持てなくなる日もあります。
そんな時、今回の自分を支えてくれたのは、
「もっと頑張らなきゃ」という気合ではなく、
勉強に向かう時間そのものでした。
コードを書いて、
理解がつながって、
昨日より少し前に進めたと感じられたこと。
それが、
仕事で落ち込んだ気持ちを、
少しずつ立て直してくれました。
今年も、
仕事に悩みながら、勉強に支えられながら、
一歩ずつ積み重ねていきたいと思います。
🌿 杜 Tech Life
