エクセルを用いて
プログラミングを体験する
1.はじめに
2
1.1.本資料の目的
1.2.プログラムの例
1.3.プログラムの考え方
1.4.用語集(1/2)
1.5.用語集(2/2)
1.はじめに
目的
資料本資料の目的を知る
本資料の目的
3
1
・本資料は、プログラミングをはじめて学ぶ人のために、エクセル
上で動作するプログラムを解説するものである
・なお、使用環境や知識は、次の程度を想定している
対象とするソフト Microsoft Excel 2007 , 2010 学習済みの知識 情報の実習で学ぶ程度のエクセルの利用 対象者 プログラミングを学びたい者1.はじめに
目的
資料プログラムの一例を知る
プログラムの例
4
2
・大学生が良く使うと考えられるプログラムとして、日程調整用
ツールが上げられる
・例えば下記の表を見て、どの日付が最も出席率が高いか調
べるプログラムである
日付 名前 山田 信博 × × ○ × ○ ○ ○ 赤平 昌文 ○ × ○ ○ × ○ ○ 鈴木 久敏 ○ ○ × × × × × 米倉 実 × ○ ○ ○ × × ○ 清水 一彦 ○ ○ × ○ ○ × × 宇川 彰 ○ ○ × ○ ○ × × 五十嵐 徹也 × ○ ○ × × ○ × 東 照雄 × ○ ○ × ○ × ○ 大垣 眞一郎 × × × ○ ○ × × 内田 伸子 × × × ○ × ○ × 山下 勝也 ○ ○ ○ × ○ × ○ 3月7日 3月1日 3月2日 3月3日 3月4日 3月5日 3月6日・本資料を読むことで、少なくともこの日程調整のためのプログラ
ムを書けるようになるはずである
1.はじめに
目的
資料プログラミングの考え方を学ぶ
プログラムの考え方
5
3
・プログラムの処理は、小さな命令の集合から成り立っている
-命令は、数値を受け取る、計算する、結果を表示するなど 様々な種類がある・命令の集合を処理する規則として、次の構造が上げられる
特徴 順次 複数の命令を1つづつ順 に処理していく [命令1] [命令2] 特徴 条件分岐 ある条件が成立する場合 のみ命令を実行する分岐
[命令1] [成立] [命令2] 特徴 繰り返し 一定の条件が達成される まで、同じ処理を繰り返す反復
[命令1] [判定] [命令2]条件分岐と繰り返しがプログラムの基本構造
1.はじめに
目的
資料エクセルでのプログラミングを実現する全体構成
エクセルとプログラミング
6
4
用語 意味 エクセル 広く使われている表計算ソフト 今回、この上でプログラムを実行する マクロ エクセル上で動くプログラムVBA Visual Basic for Applications
マクロを記述するために用いられるプログラミング言 語 コード プログラミング言語で書かれた命令文 エクセル 所有する 影響を与える マクロ VBA エディタ 作成する
2.
VBAの利用方法
7
2.1.環境設定
2.2.ファイルの取扱い
2.3.マクロ画面の使い方
2.4.VBAの使い方
2.5.マクロ作成の演習
2
.VBAの利用方法
目的
2.1.環境設定
8
マクロを利用するための環境の設定
を学ぶ
2.VBAの利用方法
目的
資料 2.1.環境設定エクセル
2010において、VBAを利用するためのボタン
の表示方法を学ぶ
開発タブの表示方法
(1/2)
9
1
2.ファイルタブからオプションを選択し 3.「リボンのユーザ設定」中の「開発」をチェック 1.このようなタブを出現させるため ウイック アクセス ツール バー2.VBAの利用方法
目的
資料 2.1.環境設定開発タブの表示方法
(2/2)
2
エクセル
2007において、VBAを利用するためのボタ
ンの表示方法を学ぶ
3.基本設定の[開発]タブをリボ ンに表示するにチェックを入れる 1.このようなタブを出現させるため10
2.Excelのオプション を選択し2.VBAの利用方法
目的
資料 2.1.環境設定開発タブの見方
3
開発タブ中のボタンを学ぶ
ボタン名 意味 関連章 VisualBasic プログラムを入力する画面を表示す る 2.4章 マクロ マクロを管理&実行する画面を表示 する 2.3章 マクロのセキュ リティ マクロに関するセキュリティを設定す る 2.1.4章 ・上記の表に記載のないボタンを使ってマクロを作ることもできる -マクロの記録:クリックしてから停止するまでの動作を、マクロとして記録する -相対参照で記録:チェックを入れることで、マクロの記録が相対的に記録される 本資料で用いるのは、このボタンのみ 補足11
2.VBAの利用方法
目的
資料 2.1.環境設定セキュリティの設定
4
マクロを使えるセキュリティの設定を学ぶ
2.指定した2か所にチェックを入れる 1.マクロのセキュリティをクリックし、下記 の画面を表示する12
・マクロはセキュリティの都合上、そのままでは実行できない
-作成者不明のエクセル中のマクロが自動実行され、ウィルス の感染を引き起こすリスクを回避するため・以下の操作をすることで、警告が出るものの、マクロの利用が
可能になる
2
.VBAの利用方法
目的
2.2.ファイルの取扱い
13
マクロを含んだファイルの取扱いの
方法を学ぶ
2.VBAの利用方法
目的
2.2.ファイルの取扱い 資料 中アイコン 小アイコン 種類の名称 Excel ブック Excelマクロ有効ブック 拡張子 .xlsx .xlsmマクロを含んだファイルのが、通常のエクセルファイ
ルと異なることを学ぶ
ファイル形式
14
1
従来のエクセルファイル マクロを含むエクセルファイル (!が表示される)2.VBAの利用方法
目的
2.2.ファイルの取扱い 資料エクセル
2010において、ファイルを開き、マクロを実
行できるようにする手順を学ぶ
ファイルを開く
(1/2)
15
2
コンテンツの有効化をクリックすることで、保存 されているマクロの利用が可能になる ・「セキュリティの警告が」表示されない場合 -理由1.セキュリティの設定が異なるため ⇒ 2.1.4章を参照 -理由2.一度コンテンツを有効化し、保存しているため 補足2.VBAの利用方法
目的
2.2.ファイルの取扱い 資料エクセル
2007において、ファイルを開き、マクロを実
行できるようにする手順を学ぶ
ファイルを開く
(2/2)
16
3
・「セキュリティの警告が」表示されない場合 -理由1.セキュリティの設定が異なるため ⇒ 2.1.4章を参照 -理由2.一度コンテンツを有効化し、保存しているため 補足 1.ファイルを開いた際に、 オプションを選択し 2.「このコンテンツを有 効にする」をチェックする ことで、保存されている マクロの利用が可能に なる2.VBAの利用方法 課題 課題フォルダ 課題2 利用ファイル 参考章
課題
2.2.ファイルの取扱い確認手順に従いファイルを開いて、マクロが実行でき
るようにせよ
ファイルを開く
17
4
課題2 2.2.2章 , 2.2.3章2.1
① ファイル:課題2を開く ② 警告が発せられるため、マクロが使用できるように対処する ③ 正しくマクロが実行できることは、次の課題で確認する 確認手順2.VBAの利用方法
目的
2.2.ファイルの取扱い 資料マクロを含んだファイルを保存する手順を学ぶ
ファイルを保存する
18
5
・ファイルの種類を正しく選択しないと、「次の機能はマクロなしのブックに保存できません~」 と警告が発生します ・作成したマクロの種類によっては、保存する際に「プライバシーに関する注意: ~」と警告 文が発生する場合がありますが、その場合はOKを押すことで問題無く保存できます 補足 2.ファイル形式「Excel マクロ有効ブック」 を選択して保存する 1.ファイルにマクロを含めて保存するとき は、名前を付けて保存を選択し2
.VBAの利用方法
目的
2.3.マクロ画面の使い方
19
マクロを操作するための「マクロ画
面」の使い方を学ぶ
2.VBAの利用方法
目的
2.3.マクロ画面の使い方 資料マクロ画面のボタンを学ぶ
マクロ画面の見方
20
1
ボタン名 意味 関連章 実行 選択したマクロを実行する ステップイン 選択したマクロを少しずつ実行する 編集 選択したマクロの内容を編集する 2.4章 作成 新しいマクロを作成する 2.3.5章 削除 選択したマクロを削除する オプション 選択したマクロのオプション画面を表示する 2.3.3章 登録されているマク ロを選択し、右のボ タン群で操作する ・マクロの保存先は、複数のエクセルファイルを開いている場合に利用する項目である ⇒2.3.6.章 補足2.VBAの利用方法
課題
課題 課題フォルダ 課題2 利用ファイル 参考章 2.3.マクロ画面の使い方確認手順に従い、課題
2.1で開いたファイルの動作を
確認せよ
マクロの実行
21
2
課題2 参考:2.3.12.2
実行例 ① 開発タブよりマクロのボタンを選択し、マクロ画面を開く ② マクロ画面中のsample01を選択し、実行ボタンをクリックする ③ エクセル画面が実行例の上と同じになることを確認する ④ 再びマクロ画面を開き、sample02を選択し、実行ボタンをクリッ クする ⑤ エクセル画面が実行例の下と同じになることを確認する 確認手順2.VBAの利用方法
目的
2.3.マクロ画面の使い方 資料マクロのオプション画面を学ぶ
マクロオプション画面の見方
22
3
・Ctrlキー:zキーの左下 あるいは .キーの右下に位置する 2ボタンあるが、どちらも同じ意味である 補足 ボタン名 意味 マクロ名 マクロの名前 ショートカット キー このマクロを実行ボタンを押さずに実行できるためのキーボタンの組み合わせ Ctrlと任意のキーを組み合わせられ、それを同時に押 すことで、実行ができる 説明 マクロ画面で表示される、そのマクロの説明2.VBAの利用方法
課題
課題 課題フォルダ 課題2 利用ファイル 参考章 2.3.マクロ画面の使い方確認手順に従い、課題
2.2で開いたファイルでショート
カット実行を確認せよ
マクロのショートカット実行
23
4
課題2 2.3.3章2.3
① セルE2とE3の内容をクリアする ② マクロ画面を開き、sample01のオプション画面を開く ③ ショートカットキーが「ctrl + q」であることを確認する ④ オプション画面とマクロ画面を閉じる ⑤ キーボード中のctrlキーを押しながらqキーを押す ⑥ sample01が実行されることを確認する ⑦ マクロ画面を開き、sample02のオプション画面を開く ⑧ ショートカットキーが設定されていないので、任意のキーを入力 する ⑨ オプション画面とマクロ画面を閉じ、ctrlキーと入力した任意の キーとの組み合わせで、sample02が実行されることを確認する 確認手順2.VBAの利用方法
目的
2.3.マクロ画面の使い方 資料マクロの新規作成の手順を学ぶ
マクロの新規作成
24
5
1.新規マクロの 名前を入力する 2.同じマクロ名 が無ければ、作 成ボタンが押せ るようになる 3.作成ボタンを 押し、VBA画面 を表示し、編集 をおこなう ※VBA画面の使 い方は2.4章で説 明する2.VBAの利用方法
目的
2.3.マクロ画面の使い方 資料エクセルファイルを複数開いている場合のマクロの取
扱われ方を学ぶ
マクロとエクセルファイル
25
6
・新規作成し、未保存のファイルに対しては、この限りではない 補足 1.これらのように複数のファイルを開い ている場合には 2.別のファイルのマクロが 「ファイル名!マクロ名」として表記される 4.マクロの保存先を 変更することで、表示 するマクロをしぼること ができるこのように、マクロは開いている全てのファイルで共有できる
3.別のファイルのマク ロも、作業中のファイル 上で利用することがで きる2
.VBAの利用方法
目的
2.4.VBAの見方と使い方
26
マクロを作成するための「
VBA」の使
い方を学ぶ
2.VBAの利用方法
目的
2.4.VBAの使い方 資料主な画面の見方を学ぶ
VBA画面の見方
27
1
プロジェクトエク スプローラ コード画面 ツールバーマクロ画面の編集ボタン
マクロ画面の作成ボタン
OR 名称 役割 関連章 ツールバー 操作の一部をアイコンにして表示し ている プロジェクトエク スプローラ マクロの保存先を示す画面 2.4.2章 コード画面 マクロの中身を編集する画面 2.4.3章 他2.VBAの利用方法
目的
2.4.VBAの使い方 資料マクロがどの場所で管理されているかを学ぶ
マクロの管理
28
2
・Moduleは、ファイルを開いてマクロを作成する度に新しく作成される ・マクロ画面と同じく、開いている別ファイルのマクロも編集できる 補足 2.それを展開して 「標準モジュール」をさらに 展開した中の「Module」に、 マクロが保存されている 1.開いているファイルごとに、 「VBAProject(ファイル名)」 と書かれたボタンが表示さ れる 3.Moduleをクリックすること で、コード画面にその中身 が表示される・プロジェクトエクスプローラ中において、作成したマクロは、次の
ように保存されている
2.VBAの利用方法
目的
2.4.VBAの使い方 資料VBA中で、マクロがどのように記述されているかを知
る
マクロの中身
(1/3)
29
3
・コード画面を見ると、下図のような記述が見られる
・これがマクロの中身である
・このように、特定のルール(VBA)に従う文字を記入することで、
マクロは形成される
2.VBAの利用方法
目的
2.4.VBAの使い方 資料VBA中の、マクロ一つ一つの範囲を知る
マクロの中身
(2/3)
30
4
・下記に記す画面では、2種類のマクロが記述されている
・また、その記述の規則を「書式:マクロ」にて記す
マクロ:Sample01の記述の始まりを示すSub から End Sub までで一つのマクロを表す 同様に マクロ:Sample02 を示す Sub [マクロ名] [命令] End Sub
マクロ
書式・Sub からEnd Subまでで一つのマクロを示す ・その間に、マクロの中身となる命令を記す ・この記述は、マクロ画面でマクロを新規作成 すると、自動で作成される
2.VBAの利用方法
目的
2.4.VBAの使い方 資料マクロ中に記述できる、命令の基本的な規則を学ぶ
マクロの中身
(3/3)
31
5
Ⅰ
1行に書ける命令は、1種類のみである
Ⅱ
命令は、上から下に向けて順に実行される
-順次構造
Ⅲ
‘ が記述されると、そこから行末までは命令としての意
味を持たない(
VBA中では緑色に表示される)
-注釈と呼び、メモをするのに役立つ
注釈:命令として意味を 持たないもの、メモ2.VBAの利用方法
目的
2.4.VBAの使い方 資料VBA上でマクロを実行する方法を学ぶ
VBAでの実行(1/3)
32
6
実行したいマクロ中にカーソルを合わせた後、再 生ボタンをクリックすることで、実行することができる2.VBAの利用方法
目的
2.4.VBAの使い方 資料実行中のマクロを一時停止する方法を学ぶ
VBAでの実行(2/3)
33
7
1.停止したい行の左にあるフレームをクリックすること で、停止用のマーカを作成できる 2.実行すると、マーカが黄色く表示されて、その行を 実行する前の段階で処理が止まる 3.処理を再開したければ、再生を、終 了したければ停止ボタンを押す ・マクロ画面のステップインボタンは、この一時停止を各行ごとに行いながら実行するボタン である ・それを利用する際の一時停止後の再開は、F8ボタンを押すことでおこなえる 補足・マクロの実行は、一瞬で終わる
・あらかじめ一時停止したい箇所を設定することで、実行時に
一時停止が発生する
2.VBAの利用方法
目的
2.4.VBAの使い方 資料エラー画面を学ぶ
VBAでの実行(3/3)
34
8
名称 役割 終了 実行したマクロを終了する デバッグ マクロのエラーが発生し、一時停止している行を確認 する・マクロ実行時に、次のような画面が表示されることがある
2.VBAの利用方法 課題 課題フォルダ 課題2 利用ファイル 参考章
課題
2.4.VBAの使い方確認手順に従い、課題
2.3で開いたファイルをVBA上
から実行できることを確認せよ
マクロを実行する
35
9
課題2 2.4.6章2.4
① セルE2とE3の内容をクリアする ② VBAを開き、Sample01にあたる範囲内にマウスカーソルを合わ せる ③ 実行ボタンを押す ④ エクセルの画面にて、Sample01が実行されたことを確認する 確認手順2
.VBAの利用方法
目的
2.5.マクロの作成
36
マクロを作成する一連の流れを体験
する
2.VBAの利用方法 課題 2.5.マクロ作成の演習 課題フォルダ 課題2 利用ファイル 参考章
課題
確認手順に従い、マクロを実際に作成し、その動作
を確認せよ
マクロを作成する
37
1
課題2_5 2.2章 , 2.3.5.章 , 2.4.2章 , 2.4.6章2.5
① 新しいエクセルファイルを作成し、それを開く ② 2.3.5章に従ってマクロ画面から、マクロ名:exercise でマクロを 新規作成する ③ 開かれたVBA上のコード画面が下図のようになっていることを 確認する ④ マクロ:exercise の中に、ファイル:課題2_5 の中身をコピーし て貼り付ける ⑤ マクロ:exerciseを実行し、エクセル画面の左上に「IMAGINE THE FUTURE」と表示されるのを確認する ⑥ 2.2.5章に従い保存して、エクセルを閉じる ⑦ 保存したファイルを改めて開いて、マクロが動作することを確認 する 確認手順3.
VBAの作成
38
3.1.セルの操作
3.2.条件分岐の利用法
3.3.繰り返しの利用法
3.4.変数の利用法
3.5.発展課題
3
.VBAの作成
目的
3.1.セルの操作
39
セルを用いて、数値をはじめとする値
の表示、操作の方法を学ぶ
3.VBAの作成
目的
3.1.セルの操作 資料 ■Cells(8,3) とは ・Cells(8,3)は、シート中の8行3列目であるC8を表す ■値を与える には ・コード中でのイコールは、右辺の値を左辺に与えることを示す ・この処理を、代入と呼ぶ ・コードの1行目は、数値128がC8に代入されているセルを指定するコードと、そこに数値を表示させる方
法を学ぶ
値の表示
(1/2)
40
1
コード例と解説 1 Cells(8,3) = 128128
Cells(8,3)
3.VBAの作成
目的
3.1.セルの操作 資料 ■値の種類 ・コードの1行目は、数値の代入例 ・コードの2行目は、文字列の代入例 -””で囲われた文字を表示する ・コードの3,4行目は、セルの代入例 -3行目は、Cells(8,4)が持つ値を、Cells(8,3)に代入する -4行目のように、自分自身を指定することもできるセルに様々な値を表示するコードを学ぶ
値の表示
(2/2)
41
2
コード例と解説 1 Cells(8,3) = 1282 Cells(8,3) = “Hello World” 3 Cells(8,3) = Cells(8,4)
4 Cells(8,3) = Cells(8,3)
・文字列を””で囲む理由は、後述する変数と呼ばれる特殊な文字と区別するため
3.VBAの作成
目的
3.1.セルの操作 資料 ■代入と計算 ・代入は、右辺の計算の結果のみが与えられる -例えば1行目は、2+2ではなく、4がCells(8,3)に表示される ・5行目のように、複数計算を組み合わせることも可能 -括弧が優先して計算されるなどの決まりは、通常通り数式を用いた数値の計算を学ぶ
数式の計算
42
3
コード例と解説 1 Cells(8,3) = 2+2 ‘足し算 2 Cells(8,3) = 4-2 ‘引き算 3 Cells(8,3) = 8*2 ‘かけ算 4 Cells(8,3) = 16/2 ‘割り算 5 Cells(8,3) = 32 * ( 2 + 64 )2+2
Cells(8,3)
4-2 8*2 16/2 32*(2+64)
3.VBAの作成
目的
3.1.セルの操作 資料 ■代入される場所としてのセル ・Cellsはイコールの左辺にあると、右辺を代入する場所を示す ■代入する値としてのセル ・Cellsはイコールの右辺にあると、既に持つ値を示す -2行目では、その値を代入している -3行目のように、値であるため、他の数値と計算できる ■セルを指定する方法 ・Cellsを用いたセルの指定は、数式で与えることもできる -数式の結果が、セルを指定する値として用いられる -4行目では、Cells(8,4)の値を代入している -5行目では、Cells(8,3)に代入される ・6行目のように、Cellsを入れ子にして扱うこともできるセルを指定する
Cellsをより使いこなす方法を学ぶ
セルの参照
43
4
コード例と解説 1 Cells(8,3) = 128 2 Cells(8,3) = Cells(8,4) 3 Cells(8,3) = Cells(8,4) + 128 4 Cells(8,3) = Cells(8, 2+2) 5 Cells(8,2+1) = 128課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.1.セルの操作セルの値を別のセルに複製するマクロを、ファイル中
の指示に従い作成せよ
セルの値の複製
44
5
課題3_1_1 3.1.1章,3.1.2章3.1.1
課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.1.セルの操作セルの値を用いて計算するマクロを、ファイル中の指
示に従い作成せよ
セルの値の計算
45
6
課題3_1_2 3.1.3章3.1.2
課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.1.セルの操作セルの値を、別の値に更新するマクロを、ファイル中
の指示に従い作成せよ
セルの値の更新
46
7
課題3_1_3 3.1.2章 , 3.1.4章3.1.3
3
.VBAの作成
目的
3.2.条件分岐の利用法
47
もし○○であれば、××するといった
分岐をコード中に加える方法を学ぶ
3.VBAの作成
目的
3.2.条件分岐の利用法 資料 ■条件分岐とは ・[条件]を満たすのであれば[命令]を実行するという分岐を作る命令 ・コード例は、セルC8が4未満ならセルC8に0を代入する 命令である ■If とは ・コード例で用いた、条件分岐を作る命令である ・1行目の Cells(8,3) < 4 が[条件]にあたる ・2行目の Cells(8,3) = 0 が[命令]にあたる条件分岐の基本的な記述方法を学ぶ
条件分岐の基礎
48
1
コード例と解説 1 If Cells(8,3) < 4 Then 2 Cells(8,3) = 0 3 End If If [条件] Then [命令] End IfIf文
書式 If と Then を記述し、間に条件を記述する Then からEnd If までの範囲が、条件を満たす 際に実行される命令となる3.VBAの作成
目的
3.2.条件分岐の利用法 資料条件として用いられる数値の比較の方法を学ぶ
条件と数値の比較
49
2
[数値A] = [数値B] [数値A]と[数値B]が等しい場合 [数値A] <> [数値B] [数値A]と[数値B]が異なる場合 [数値A] > [数値B] [数値A]が[数値B]より大きい場合 [数値A] >= [数値B] [数値A]が[数値B]以上の場合 [数値A] < [数値B] [数値A]が[数値B]より小さい場合 [数値A] <= [数値B] [数値A]が[数値B]以下の場合数値の比較
書式・数値を比較する一般的な書式を示す
・場合を満たすとき、条件が満たされる(正しい)と言える
・条件とは「正しい」と「誤り」どちらかを値として示すモノである
・ここでは、主に数値を比較したものを利用する
・このように、「正しい」か「誤り」しかない値を「論理値」と呼ぶ -True と False しか値を持たない ・論理値同士の計算として次のものがある-[論理値A] And [論理値B] :どちらの論理値もTrueのときにTrueを示す -[論理値A] Or [論理値B] :どちらかの論理値がTrueのときにTrueを示す ・論理値の頭にNotをつけると、示す値が逆になる
3.VBAの作成
目的
3.2.条件分岐の利用法 資料 名称 If Else If文 分岐 3分岐 特徴 [条件A]を満たさな い場合に、別の[条 件B]に対するIf文 を持つ ⇒3.2.5章 名称 If Else文 分岐 2分岐 特徴 [条件]で場合分け したどちらの分岐 先にも命令を持つ ⇒3.2.4章 名称 If 文 分岐 2分岐 特徴 [条件]を満たした 場合のみ、分岐先 に命令を持つIf文を用いた条件文の種類とその分岐について学ぶ
条件分岐の種類
(1/3)
50
3
If
[命令]End If
[条件] ThenIf
[命令A]End If
[条件] Then [命令B] ElseIf
[命令A]End If
[条件A] Then [命令B] ElseIf
[条件B] Then ・組み合わせることで、より分岐の多いものも作ることができる 補足3.VBAの作成
目的
3.2.条件分岐の利用法 資料 ■If-Else文とは ・もし条件を満たせば[命令A]を、満たさなければ[命令B]を実行する 分岐を作る命令 ・コード例は、C8が4未満であればC8に0を代入する、それ以外であ ればC8に16を代入する命令を示す条件を満たさない場合に何らかの命令を実行する記
述方法を学ぶ
条件分岐の種類
(2/3)
51
4
コード例と解説 1 If Cells(8,3) < 4 Then 2 Cells(8,3) = 0 3 Else 4 Cells(8,3)=16 5 End If If [条件] Then [命令A] Else [命令B] End IfIf-Else文
書式If
[命令A]End If
[条件] Then [命令B] Else3.VBAの作成
目的
3.2.条件分岐の利用法 資料 ■If-Else If文とは ・[条件A]を満たせば[命令A]を、満たさない場合に[条件B]を満たせ ば[命令B]を実行する分岐を作る命令 ・コード例は、C8が4未満であればC8に0を代入する、それ以外の場 合、E8が4より大きければ16を代入する命令である条件を満たさない場合に、他の判定を行う条件分岐
の記述方法を学ぶ
条件分岐の種類
(3/3)
52
5
コード例と解説 1 If Cells(8,3) < 4 Then 2 Cells(8,3) = 03 ElseIf Cells(8,4) > 4 Then 4 Cells(8,4)=16 5 End If If [条件A] Then [命令A] ElseIf [条件B] Then [命令B] End If
If-ElseIf文
書式If
[命令A]End If
[条件A] Then [命令B] ElseIf
[条件B] Then課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.2.条件分岐の利用法セルの値を比較し、結果を返すマクロを、ファイル中
の指示に従い作成せよ
セルの値の比較
53
6
課題3_2_1 3.2.1章, 3.2.2章3.2.1
3.VBAの作成
目的
3.2.条件分岐の利用法 資料 ■コードの解説 ・If文は、命令として扱うことができる ・そのため、If文の中にIf文を埋め込むことができる ・コードは、C8が4未満の際にD8が4未満なら、E8に「どちらも4未満」 と表示するIf文を二重にして扱う考え方を学ぶ
二重の条件分岐
54
7
コード例と解説 1 If Cells(8,3) < 4 Then 2 If Cells(8,4) < 4 Then 3 Cells(8,5) = “どちらも4未満” 4 End If 5 End IfIf
[命令]End If
[条件A] Then [条件B] ThenIf
End If
課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.2.条件分岐の利用法二重の条件分岐を用いて、セルの値を判定するマク
ロを、ファイル中の指示に従い作成せよ
セルの値の判定
55
8
課題3_2_2 3.2.7章3.2.1
3
.VBAの作成
目的
3.3.繰り返しの利用法
56
同じコードを一定回数繰り返す方法
を学ぶ
3.VBAの作成
目的
3.3.繰り返しの利用法 資料 ■繰り返しとは ・同じ命令を指定数繰り返すこと ・コード例では、セルC8の値に1を加算して更新する処理を10回繰り 返している ■For とは ・コード例で用いた、繰り返しをおこなう命令である繰り返しの基本的な記述方法を学ぶ
繰り返しの基礎
(1/2)
57
1
コード例と解説 1 For i=1 To 10 2 Cells(8,3) = Cells(8,3)+1 3 Next For i= 1 To [数値] [命令] NextFor文
書式 ・[数値]は、繰り返す回数を示す ・ForとNextで囲まれた範囲が繰り 返される ・Forの仕組みは、実はもっと複雑なのだが、今の知識ではこの程度で問題ない 補足3.VBAの作成
目的
3.3.繰り返しの利用法 資料For文を用いる際の、繰り返し回数の獲得方法を学ぶ
繰り返し
(2/2)
58
2
■For 文の i とは ・1行目で出てきた i には、繰り返しの回数が格納されている -繰り返し1周目なら1が、2周目なら2が格納される ・数値として読み取るには、2行目のように i とそのまま入力する ・このコードは、セルC8に1から10までの値を順に加算することを示して いる -つまり 55 を加算している コード例と解説 1 For i=1 To 10 2 Cells(8,3) = Cells(8,3)+ i 3 Next ・i は、実はどのような文字でも問題が無い ・例えば、counter に置き換えても良い ・しかし一般的には、i,j,k が用いられる 補足課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.3.繰り返しの利用法繰り返しを用いてかけ算をおこなうマクロを、ファイル
中の指示に従い作成せよ
かけ算と繰り返し
59
3
課題3_3_1 3.3.1章3.3.1
課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.3.繰り返しの利用法繰り返しを用いてセルを参照し加算をおこなうマクロ
を、ファイル中の指示に従い作成せよ
セルの参照と繰り返し
60
4
課題3_3_2 3.3.1章 , 3.3.2章3.3.2
3.VBAの作成
目的
3.3.繰り返しの利用法 資料 ■2重の繰り返しとは ・If文で2重ができるように、For文も2重にすることができる -また、If文にFor文を埋め込むこともできるし、逆もできる ・この場合、最も内側の命令は、5×5の25回繰り返される ・埋め込んだFor文の繰り返し回数を格納する文字は、それぞれ別の ものにしなくてはならない -今回は、外側がi、内側がjである ・ソースコードは、A1からE5までのセルに0を格納しているFor文を二重にして扱う考え方とその際の規則を学ぶ
二重の繰り返し
61
5
コード例と解説 1 For i=1 To 5 2 For j=1 To 5 3 Cells(i,j) = 0 4 Next 5 Next課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.3.繰り返しの利用法二重の繰り返しを用いて九九表を作成するマクロを、
ファイルの指示に従い作成せよ
九九表の作成
62
6
課題3_3_3 3.3.5章3.3.3
3
.VBAの作成
目的
3.4.変数の利用法
63
セルのように値を格納し参照できるモ
ノをコード中で利用する方法を学ぶ
3.VBAの作成
目的
3.4.変数の利用法 資料 ■変数とは ・値を格納することができ、また、格納された値を参照できるモノ -Cellsと似た利用ができる -Cellsは、実際のセルに対して格納する -変数は、実行時のみ格納する場所が作られる ・1行目で a という名前で定義している ・2行目のように、代入の対象にできる ・3行目のように、計算にも用いれる -この場合は、C8に6が表示される変数の利用の仕方を学ぶ
変数の基礎
(1/2)
64
1
コード例と解説 1 Dim a as Integer 2 a = 4 3 Cells(8, 3) = a + 2 ・Forで用いたiも、変数である 補足a
4
3.VBAの作成
目的
3.4.変数の利用法 資料変数の記述方法と、利用できる値の種類を学ぶ
変数
(2/2)
65
2
・変数の型は、他にも次のようなものがある(このほかにもある -Double型:小数を取り扱う -Boolean型:論理値を取り扱う 補足 Dim [変数名] As [変数の型]変数の定義
書式 ・[変数名]は、任意の文字列を与えられる -ただし、半角英字が望ましい -また、命令として使われているものは好ましくない +Cells や If など ・[変数の型]は、格納する値の種類で、次のようなものがある -Integer :整数を取り扱う型 -String : 文字列を取り扱う型 ・定義した型以外の値を取り扱うと、エラーを発する ・変数は、定義した後に何らかの値を代入することが望ましい ・定義した行の以前の行では、その変数は使えない ・既に定義されている変数名の変数を定義すると、以前の変数 が消えてしまう3.VBAの作成
目的
3.4.変数の利用法 資料実行時の一時停止中に、変数の中身を確認する方
法を学ぶ
変数とデバッグ
66
3
1.デバッグしたい箇所でマーカをつけ、実行する前に 2.表示タブからローカルウィン ドウを選択し、それを表示する 3.実行し、一時停止された際、ローカルウィンドウ で変数の値が確認できる 4.確認できるのは、一時 停止した行の上の行が終 わった状態課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.4.変数の利用法変数を定義、値の代入、出力までをおこなうマクロを、
ファイルの指示に従い作成せよ
変数の編集
67
4
課題3_4_1 課題3.4.1 , 課題3.4.23.4.1
3.VBAの作成
目的
3.4.変数の利用法 資料 ■配列とは ・配列とは、同じ変数名を番号を付けて区別した変数 -Cellsが番号でセルを区別しているのと似た利用ができる ・配列の番号の最大数(配列の長さ)は、定義時に指定する -1行目では、長さ3である ・2行目は配列:boxの1番目に1を代入している ・3行目は配列:boxの3番目に3を代入している複数の変数の集合である配列の利用の仕方を学ぶ
変数の集合
(1/2)
68
5
コード例と解説1 Dim box(3) as Integer 2 box(1) = 2
3 box(3) = 32
・実は、0番目(a(0))も使える
・逆に他のプログラムにおいては、上記の場合a(3)を利用できないことが多い -つまり a(0) a(1) a(2) で長さ3
補足
長さ=3
a(1)
a(2)
a(3)
3.VBAの作成
目的
3.4.変数の利用法 資料配列の記述方法を学ぶ
編集の集合
(2/2)
69
6
Dim [配列名]([配列の長さ]) As [配列の型]配列の定義
書式 ・[配列名]と[配列の型]における規則は、[変数名]と[変数の型] に同じ ・[配列の長さ]は、配列の番号の最大数を示す -1から指定した最大数までの番号が使える -負の数や最大数より大きい数を番号に使うとエラーとなる ・[配列の長さ]に、別の変数を与えることはできない -必要に応じて、十分に大きい長さを与える必要が生まれる課題 3.VBAの作成 課題フォルダ 課題3 利用ファイル 参考章
課題
3.4.変数の利用法配列を定義、値の代入、出力までをおこなうマクロを、
ファイルの指示に従い作成せよ
配列の編集
70
7
課題3_4_2 課題3.4.5 , 課題3.4.63.4.2
3
.VBAの作成
目的
3.5.発展課題
71
これまでの知識を用いて、少し高度
なマクロの作成に取り組む
課題 3.VBAの作成 3.5.発展課題 課題フォルダ 課題3 利用ファイル
課題
指定されたセルの値を読み込み、平均値を出力する
マクロを、ファイルの指示に従い作成せよ
平均値の取得
72
1
3_5_13.5.1
課題 3.VBAの作成 3.5.発展課題 課題フォルダ 課題3 利用ファイル
課題
指定されたセルの値を読み込み、最大値を出力する
マクロを、ファイルの指示に従い作成せよ
最大値の取得
73
2
3_5_23.5.2
課題 3.VBAの作成 3.5.発展課題 課題フォルダ 課題3 利用ファイル
課題
指定されたセルの値を読み込み、大きい順に出力す
るマクロを、ファイルの指示に従い作成せよ
値の並び替え
74
3
3_5_33.5.3
・この並び替えをおこなうプログラムは、様々な方法が考えられる ・興味がある人は「バブルソート」や「クイックソート」で調べてみると良い 補足4.おわりに
75
4.1.プログラミングの例
4.2. 他のプログラム
4.おわりに
目的
資料1.3章で示したプログラムの解説をおこなう
プログラムの例
76
1
日付 名前 山田 信博 0 0 1 0 1 1 1 赤平 昌文 1 0 1 1 0 1 1 鈴木 久敏 1 1 0 0 0 0 0 米倉 実 0 1 1 1 0 0 1 清水 一彦 1 1 0 1 1 0 0 宇川 彰 1 1 0 1 1 0 0 五十嵐 徹也 0 1 1 0 0 1 0 東 照雄 0 1 1 0 1 0 1 大垣 眞一郎 0 0 0 1 1 0 0 内田 伸子 0 0 0 1 0 1 0 山下 勝也 1 1 1 0 1 0 1 3月7日 3月1日 3月2日 3月3日 3月4日 3月5日 3月6日・ここで、1.3章で示した日程調整プログラムを作ると考えた際に、
これまで習った手段をどのように活かすか、その一例を解説する
1.日付ごとに人が何人参加するかを調べる
-調べるには、繰り返しと条件分岐を用いる +条件分岐は、数値の比較を学んだことから、出席を1で表す +繰り返し数は、別のセルから入力できるようにすると良い -調べた結果は、日を長さとした配列に保存する +長さに変数は用いれないので、十分に長い配列を用いる2.保存した配列から、最大値を調べる
-3.5.2章で実践したプログラムを活かせばよい興味があれば、ぜひ作ってみると良い
4.おわりに