単元: 社会と情報「問題解決 5.関数と統計」(p.126-129)
本時は、コンピュータでのより高度な自動化手法として、VBAでのプログラミングを学ぶ。 Excel関数のような手軽な計算だけでなく、命令を組み合わせたプログラミングにより、より高度な自動化を実現できる。
VBAはOffice上で動作し、基本的なプログラミングからGUIでのフォーム作成まで、プログラミングの主要な面を学ぶことができる環境である。 また、Officeの操作を自動化できる点はVBAの大きな利点であり、プログラミングを専門としない生徒にも実用的である。
西京高校の生徒は、各教科の授業や課題でExcelなどのOfficeを使う機会が多い。 また、将来的に行うであろう商務や研究の場面でも、これらのソフトウェアを利用すると考えられる。 VBAを用いた自動化によりこれらの単純作業を効率化でき、より本質的で創造的な作業に従事できるようになる。
以上より本時では、VBAでのプログラミングを通して、生徒が日々行う日常的な処理を自動化することを学ぶ。 その際、生徒がVBAの文法や関数に習熟していないことを考慮し、最初は記録したマクロの理解からはじめ、徐々に命令や制御構造を記述していく。
- マクロによる逐次処理の記録について理解する。
- 逐次・選択・反復を組み合わせたプログラミングを行える。
sequenceDiagram
participant T
participant S
participant PC
Note left of T: 導入(5分)
S->>PC: PC,Excelを起動する
PC-->>T: Excelの起動を確認する
T->>S: 本時の内容を伝える
Note left of S: 前回までのExcel関数より高度な自動化を扱うと伝える
Note left of T: 展開: VBA開発環境の準備(10分)
T->>S: VBA開発環境を準備させる
S->>PC: 「開発」タブを表示させる
PC-->>T: 「開発」タブの存在を確認する
T->>S: マクロの概要を説明する
S-->>T: マクロの記録中は全操作が記録されることを理解する
Note left of S: セルの選択も記録される\nことに留意する
Note left of T: 展開: マクロの記録(10分)
T->>S: 記録するマクロを設定する
S->>PC: マクロを起動するショートカットキーを設定する
T->>S: マクロの記録内容を示す
Note left of S: 最初は手順通りに操作することを勧める
S->>PC: セルに枠線を引くマクロを記録する
S->>PC: 記録したマクロを実行する
PC->>S: 選択セルに枠線を引く
S-->>T: 記録したマクロの動作を理解する
Note left of T: 展開: マクロの確認(15分)
T->>S: 記録したマクロの内容を説明する
S-->>T: 記録したマクロの内容を理解する
Note left of S: 他の命令が記録されていると\nマクロの動作が異なることを伝える
Note left of T: 展開: マクロを含むファイルの保存(10分)
T->>S: マクロを含むファイルの保存方法を説明する
Note left of S: マクロを含むか否かで拡張子が違う点を注意する
S->>PC: マクロ有効ブックで保存する
PC-->>S: 拡張子*.xlsmで保存されることを確認する
T->>S: VBAの能力の高さとマクロウイルスの危険性を伝える
T->>S: 保存したファイルの開き方を説明する
S->>PC: 情報バーからマクロを有効化する
S-->>T: VBAは信頼できるファイルでのみ有効化することを理解する
sequenceDiagram
participant T
participant S
participant PC
Note left of T: 展開: 色塗りマクロ(5分)
T->>S: 前回のcountif実習で用いたファイルを開く
T->>S: 条件でセルを塗り分けるマクロを作ることを伝える
T->>S: セルを塗りつぶすマクロを記録させる
S->>PC: セルを塗りつぶす操作をマクロに記録する
Note left of S: 塗りつぶす色は「標準の色」から選ばせる
PC->>S: 正しくマクロが記録されることを確認する
Note left of T: 展開: 色の符号化(15分)
T->>S: RGB色空間を説明するRGB色空間での色の作り方を理解する
Note left of S: 絵の具と光の調色の違いを具体例で理解させる
S->>PC: RGB関数を使い別の色で塗りつぶすよう、記録したマクロを書き換える
PC->>S: 指定した色でセルを塗りつぶす
Note left of T: 展開: セルの指定方法(5分)
T->>S: 指定したセルの色を塗るマクロを実装させる
S->>PC: セルの選択を行う命令を追加する
PC->>S: 指定したセルが塗られる
Note left of S: VBAの入力は小文字で良い\nことを伝える
T->>S: RangeとCellsでのセルの指定方法の違いを説明する
Note left of S: 行と列の指定順が逆になることを注意する
Note left of T: 展開: 塗り分けマクロの実装(15分)
T->>S: VBAでの条件分岐の方法を説明する
S->>PC: 条件を満たせばセルを塗るよう修正する
PC->>S: セルの値により条件分岐して塗り分ける
T->>S: VBAでの反復の方法を説明する
Note left of S: 数学のΣ記号との類似性も伝える
S->>PC: 一列分のセルを判定するよう修正する
S->>PC: 全列のセルを判定するよう修正する
PC->>S: 二重ループに従ってセルを塗り分ける
S-->>T: for構文を理解する
Note left of T: 展開: 乱数集計マクロの実装(10分)
T->>S: 前回の乱数集計プログラムをマクロで実装させる
S->>PC: rand関数とマクロを組み合わせて実装する
PC->>S: マクロで乱数を集計する
S-->>T: マクロの動作を確認する
Note left of S: rand関数とマクロの動作の兼ね合いを説明する