Skip to content

Latest commit

 

History

History
executable file
·
125 lines (102 loc) · 5.99 KB

macro.md

File metadata and controls

executable file
·
125 lines (102 loc) · 5.99 KB

マクロによる自動化(2時間)

単元: 社会と情報「問題解決 5.関数と統計」(p.126-129)

本時の位置づけ

本時は、コンピュータでのより高度な自動化手法として、VBAでのプログラミングを学ぶ。 Excel関数のような手軽な計算だけでなく、命令を組み合わせたプログラミングにより、より高度な自動化を実現できる。

教材観

VBAはOffice上で動作し、基本的なプログラミングからGUIでのフォーム作成まで、プログラミングの主要な面を学ぶことができる環境である。 また、Officeの操作を自動化できる点はVBAの大きな利点であり、プログラミングを専門としない生徒にも実用的である。

生徒観

西京高校の生徒は、各教科の授業や課題でExcelなどのOfficeを使う機会が多い。 また、将来的に行うであろう商務や研究の場面でも、これらのソフトウェアを利用すると考えられる。 VBAを用いた自動化によりこれらの単純作業を効率化でき、より本質的で創造的な作業に従事できるようになる。

指導観

以上より本時では、VBAでのプログラミングを通して、生徒が日々行う日常的な処理を自動化することを学ぶ。 その際、生徒がVBAの文法や関数に習熟していないことを考慮し、最初は記録したマクロの理解からはじめ、徐々に命令や制御構造を記述していく。

本時の目標

  • マクロによる逐次処理の記録について理解する。
  • 逐次・選択・反復を組み合わせたプログラミングを行える。

指導計画

1時限目

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は信頼できるファイルでのみ有効化することを理解する
Loading

2時限目

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関数とマクロの動作の兼ね合いを説明する
Loading