【VBA】スケジュール表自動作成に再チャレンジする!中編

※当サイトはアフィリエイト広告を利用しています

実際にこの本で勉強してみたLog
ぐらみ
ぐらみ

引き続きがんばるぞ〜

フラミンゴさん
フラミンゴさん

ここからが正念場だね

【VBA】スケジュール表自動作成に再チャレンジする!前編 は↓こちら

引き続きお世話になるのは↓こちらの本です

スケジュール表作成アプリを作成する過程をとおしてアプリを作る考え方やノウハウを学べます。
デバッグのやり方を実践に近い形で体験できるのでとても勉強になりました。

続 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利著

6日目:土日のセルに色をつける

土日のセルに色がつきました〜

とりあえず黄色にしてある状態なので、今後好きな色に変更できるようです!

追加した機能はセルの色を変えるだけだったのですが、「ループ内の重複する記述をまとめよう」の項目は非常にためになりました!

ぐらみ
ぐらみ

なんども登場する記述はまとめたほうが

処理が速くなるんだね〜

ぜんぜん知らなかった!

フラミンゴさん
フラミンゴさん

そうだね

プログラムが長くなるほど実感するよ

処理時間が長くなると動作確認に時間がかかるので、作業時間が長くなってしまうんですよね〜

今まで作ったプログラムも見直したい!と思いました。

7日目:祝日リストを用意する

ついに祝日を攻略するための準備にとりかかりました!

祝日リストを準備して、そのリストと照らし合わせて祝日を判定するという手法をとるようです。

ぐらみ
ぐらみ

手作業でスケジュール表をつくると祝日を確認するのが

地味にめんどくさいんだよね〜

フラミンゴさん
フラミンゴさん

毎年日付が変わるから厄介だよね

祝日リストはCSVファイルで用意し、input #ステートメントで読み込むという手順です。

私はCSVファイルを扱ったことがなかったのでこれがCSV!とちょっと感動しました。

私のいままでの知識だと、リスト化したものをExcelの別のシートに用意して、その情報を読み取るというやり方しかできませんでした。

いままでのやり方でも十分対応できますが、手段が大いにこしたことはありません。

ぐらみ
ぐらみ

できることが増えるのってうれしい!

フラミンゴさん
フラミンゴさん

学びのよろこびってやつだね

8日目:入力された日付が祝日か判定する

先日作ったリストをもとに、入力された日付が祝日か判定する機能ができました!

当年と翌年の2年間に対応しています。

まずは当年の祝日リストと照らし合わせて祝日か判定する機能をつくり、翌年まで範囲を拡大させるという内容でした。

私は対応する範囲を拡大させるときってなにかと難しく考えがちなので、今回紹介されていた手法は目から鱗!難しく考える必要はなかったんだ〜と感服するばかりです。

ぐらみ
ぐらみ

いっつも難しく考えちゃうんだよね〜

フラミンゴさん
フラミンゴさん

誰かがつくったプログラムを見ると

こういうやり方もあるんだなって勉強になるよ

9日目:土日祝日の背景色を選べるようにする

土日祝日の背景色をダイアログボックスから選べるようになりました!

ぐらみ
ぐらみ

へ〜

あれダイアログボックスっていうんだ

フラミンゴさん
フラミンゴさん

たしかにあれの名前を意識することって

そんなにないかもね

なにかを選ぶときに出てくるアレの名前を知ることができました。

これで検索するときも検索ワードで困らずにすみそうです笑

そして前回つくった祝日判定機能と合体させて、ついにスケジュール表を描画する機能が完成しました!

ぐらみ
ぐらみ

すごいよ〜

ちゃんとスケジュール表になってる!

フラミンゴさん
フラミンゴさん

難しいところもあったけど

なんとか完成したね

あとはフォームから操作できるように機能面、デザイン面を整えていくようなんですが、ここから先はまったく未知の領域です。

ただ、フォームで操作できるようになるとアプリ感がかなり出るのでがんばりたいと思います!

10日目:入力用フォームをつくる

ぐらみ
ぐらみ

入力フォームがあると

アプリっぽくなるね!

フラミンゴさん
フラミンゴさん

入力する場所が分かりやすくなるから

ユーザーにも優しいね

ついに入力用フォームの登場です!

フォームを作成する関係上画面を操作することが多かったので、○○ボックスとか○○ウインドウとかがいっぱい出てきてちょっと大変でした。

しかし、この章は図や画面の説明がたくさん載っているのでサクサク進めることができました!

ぐらみ
ぐらみ

これはなんの話?

ってなったりしたけど

図を見てなんとかなったよ

フラミンゴさん
フラミンゴさん

ボタンとかウインドウとかプロパティって

文字だけだと伝わりづらいものね

そして入力した値をとりあえずイミディエイトウインドウに表示させて正しく動作していることを確認します。

以前勉強したことが実践で活かせると、知識が身についた実感が湧いてうれしくなりますね!

11日目:ボタンと連動させる…はずが…

この日勉強した範囲はわたしにとって難しいことがてんこ盛り!

プロシージャ間での値の引き渡しが多かったので脳みそがパンクしました。

最後に新たに設置したボタンを押して、動作確認をするものの…

ぐらみ
ぐらみ

エラーが出ちゃったよ〜

実はこのエラー、次の章でデバッグを体験するための布石らしいのです。

さすが続カエル本、すんなりと完成させてくれるわけではないようですね…

ぐらみ
ぐらみ

まさか仕組まれたエラーだったとは…

フラミンゴさん
フラミンゴさん

着実にステップアップできる

予感がするね

ここまでのまとめ

今回もお世話になっているのは↓こちらの本です。

続 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
続 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本

ここまで勉強してきた内容

  • ループ内の重複する記述をまとめると処理が速くなる
  • CSVファイルの扱い方
  • ダイアログボックスの呼び出し方
  • 入力用フォームのつくりかた
  • プロシージャ間での値の引き渡し

勉強になった!と思うところ

  • 重複する記述はなるべくまとめよう!
  • 対応する範囲を拡大させるときも簡単なやり方を探ろう!
  • フォームの作り方、フォームとの連動のしかたを一連の流れで知ることができた!
  • やっぱりプロシージャ間の値の引き渡しはむずかしい!
ぐらみ
ぐらみ

新しいメソッドやためになるノウハウが

てんこ盛りだったよ〜

イマイチかな…と思うところ

ぐらみ
ぐらみ

内容自体がむずかしかったから

頭がパンクすることぐらいだよ…

フラミンゴさん
フラミンゴさん

がんばって取り組めている証拠だよ

ラストスパートがんばります!

フォームを作ったり、値の引き渡しをしたりと難しいところも多かったですが、なんとか乗り越えることができました!

とくに値の引き渡しは変数がたくさん出てくるので頭が混乱しました。

ここまでの内容でたくさんのメソッドやノウハウを詰め込んできましたが、残すところあと少しなので最後までがんばりたいと思います!

ぐらみ
ぐらみ

あと少しだ〜

がんばる!

フラミンゴさん
フラミンゴさん

最後まで油断せずにね!

→【VBA】スケジュール表自動作成に再チャレンジする!後編 に続きます

コメント

タイトルとURLをコピーしました