統計科学第4回
先週の感想からA
• 前回の授業では机上で学習を行い、次の授業で 実際にエクセルを使って実習する流れがとてもよ いと思いました。 • 机上で解ったつもりでも、エクセルの操作に躓い たりしたとき、先生に尋ねることができるので問 題解決ができて良かったです。 • テーマは面白かったのですが、先頭文字コードを 101で割った余りが相性とは関連ないように思わ れるので、本当に相性診断結果が期待される式 であればもっと面白いと思う。先週の感想からB
• 論理を学んだ上で実践する授業は、わかった 気になった部分が本当に分っているかどうか 明確に確認できてよかった。 • 今後難しいと思われる論理もステップを踏むこ とで簡単にクリアして行けたら嬉しいです。 • 実習形式は覚えやすいのでいいと思ったが、 印刷が自腹なのは負担になるのでmanabaで の提出を希望します。はじめてのVBA
• Excelに作成した表やデータベースに,簡単な
マクロを組み込むだけで実用的なシステムに できる。
• このマクロを作るプログラミング言語がExcel
VBA(Visual Basic for Applications) である。 • 本講義では、応用ソフトExcelの中で実行でき
るマクロを、プログラミング言語ExcelVBAで作 成する方法を学ぶ。
プログラムとは何?
• プログラムとはコンピュータに対する命令書であ り、プログラム=ソフト(ウェア)である。 • コンピュータ(ハードウェア)は、プログラム(ソフ ト)が無ければ何もできない「ただの箱」。 • プログラムを作ることをプログラミングといい、そ の言語がプログラミング言語で、次に大別できる。 – 基本ソフト(OS):WindowsやMacOSなど,応用ソフト の土台のソフト – 応用ソフト(アプリケーション):Word, Excel,ブラウザ (IEなど):仕事や生活で活用するソフト – マクロなぜExcelVBAを学ぶのか?
• マクロ以外にパソコンで動く応用ソフトを作成する には、VisualBasic(VB)やVC++などのプログラミ ング言語を使用する。 • それらの方が役に立つ気がする。 • ExcelVBAを学ぶメリットは、 1. VBやVC++に比べ文法が理解し易い。 2. Excelインストールの全パソコンでプログラム可能。 3. VBの文法に近い。VC++,Javaなど他言語のプログラ むでも役立つ。 4. 事務処理システムを安く短時間に作れるので、人材 ニーズが高い。VBA用の設定「開発」の準備
• Excelのリボン内にVBA用の[開発]タブがな い場合、タブを表示するには、 ①「ファイル」タブをクリック ②「オプション」→「リボンのユーザ設定」をクリック ③「メインタブ」欄の「開発」をチェックして「OK」 • この作業は個人用パソコンなら最初だけ行え ばよいが、大学パソコンの環境が毎回初期 化される場合は、電源ONの度に行う。VBAを始める
• Excelを起動する(Excelアイコンをダブルクリック し起動後「空白ブック」を選択)。 • ExcelVBAの環境VBEを起動する. ①リボンの「開発」タブを クリック。 ②「Visual Basic」をクリック。 図1 VBEの画面VBEとワークシートの切替え
• VBEとワークシートの切替えは図2のように画面
の一番下のタスクバーで行う。
マウスでポイント後表示したい方をクリック
プログラムの新規作成
• VBAを書き込むウィンドウ(コードウィンドウ)を新 規作成する。「挿入」→「標準モジュール」の順にク リック ブックファイル名(初期値は「Book1」) 図3 コード ウィンドウVBAの実行
【例題1】図4(a)の入力ウィンドウで自分の今の年齢 を入力し「OK」クリックし図4(b)に十年後の年齢を表 示するVBAを作成する。 (a)入力 (b) 出力 図4 例題1の実行VBAプログラムの入力
• コードウィンドウに図5のVBAプログラムを書く。 • 英字・数字・記号・スペースはすべて半角で入力
する。
VBAの基本構造
• プログラムの基本形 Sub マクロ名() 文1; 文2; End Sub • 文1,文2はコンピュータ命令で上から順に実行する。 • 条件により実行文を選んだり同じ文を繰返し実行 する方法もある。 • 原則1行1文だが複数文を半角セミコロン;で区切り 文1;文2;・・と1行入力できる。VBAの実行(VBEとワークシート)
• VBE
① SubからEndSub間のある箇所にカーソルを おく。 ② 実行ボタンをクリック• ワークシート
① ワークシートを表示 ② リボンの開発タブ→マクロの順にクリック ③ マクロ名を選択し実行をクリックVBAの保存
• VBAプログラムを「Ex01.xlsm」で保存する。 ① ワークシートを表示 ② 「ファイル」 →「名前を付けて保存」をクリック ③ 「コンピュータ」→「参照」をクリック ④ ファイル名Ex01(拡張子.xlsm不要)、ファイ ル種類をExcelマクロ有効ブックとし「保存」をク リック • Excelブックは通常ファイル名の後に拡張 子.xlsxが自動で付くが、VBAを含むと拡張子 xlsmが付く。VBAの保存
VBAファイルを読込み実行
① VBAファイルEx01.xlsmを開く。 ② 「コンテンツ有効化」ボタンをクリック ③ 「セキュリティの警告」は「はい」をクリック ④ VBAが含まれるがコードウィンドウが表示され ない場合は図7の「Module1」をダブルクリック。 図7 コードウィン ドウの再表示好きな花(その1)
桜(さくら)
桜の花言葉:「神秘な心」「優れ
た美人」「純潔」「精神美」
桜を見て感動し、『笑顔 』になり
、その『笑顔 』はどんどん連鎖し
、みんなが『笑顔』になる。
札幌市内の桜の名所
(その1)
円山公園
北海道神宮に隣 接し1034本の桜 が咲き乱れる公 園。公園で楽し み神社で味わう も良し。 見頃:4月下旬 ~5月中旬小樽市内の桜の名所
(その1:
手宮公園
)
700本の濃淡様 々な桜のピンク の上に空の青、 眼下に石狩湾の 青と、対岸の山 の残雪のコントラ ストが美しい。 見頃:5月上旬 ~中旬小樽市内の桜の名所
(その2:
小樽公園
)
繁華街花園の近く 明治開園の歴史あ る公園。小樽市花 ツツジの他エゾヤ マザクラやソメイヨ シノなど900本の桜 。 見頃:5月上旬 ~中旬小樽市内の桜の名所
(その3:
水天宮
)
小樽港を見下ろ す高台の神社。 広げた枝に咲き 誇る桜と背景の 白雪を残す山。神 社の厳かさと美し い眺めが一体化 。 見頃:5月上旬 ~中旬VBAの文字入力ポイント
• プログラムは大半を半角で入力する。 • 半角文字は半角英数入力モードの入力が効 率良い。(文字変換確定の手間を省略可) • ひらがな(全角入力)と半角英数モード(半角入 力)の切替は[半角/全角]キーを用いる。 • 半角シングルクォート‘から行末まではコメント。 • データを読み書きするシート選択は、 Sheets(シート名).Select • シート名は半角ダブルクォート"で囲む。VBAの定数と代入
• プログラム中の変化しないデータを定数という。 • "好きな数"は文字列定数,7は数値定数である。 • 文字列定数はダブルクォート"で囲む。 • 特定セルへのデータ代入は、 Range(セル番地).Value=定数,計算式,セル,変数 • (左辺)=(右辺)は「左辺に右辺を代入」。 • 左辺は必ず(セルや変数の)入れ物である。 • 決して定数や計算式を置いてはならない。VBAの出力方法(ボックスとセル)
【出力ボックスにデータやメッセージ表示】 MsgBox 定数, 計算式, セル, 変数 • &は前後の2データを文字列で連結し、&の前後 には半角スペースを入れる。 【Sheet1シートのA2セルに文字列「5*3-6/2=」、 B2セルに数式5×3-6÷2の結果を記入】 Sub 数式のセル出力() Sheets("Sheet1").Select ' Range("A2").Value = "5*3-6/2=" ' Range("B2").Value = 5 * 3 -6 / 2 ' End SubVBAの四則演算
• 四則演算等の計算式に次の記号文字列
を用いる。
• +(足算) -(引算,負数) *(掛算) /(割算) • ¥(整数割算商) Mod(整数割算余) ^(べき乗)• 計算優先順位は小中学校の数学と同じ。
• ( ) 中の計算を優先する。 • 中括弧{ }や大括弧[ ]を使えない。VBAで文字列セル入力例
【Sheet1のA3に文字列「自分の姓名」、B3に自分 の姓と名の連結結果を記入するプログラム】 Sub 文字列式のセル出力() Sheets("Sheet1").Select Range("A3").Value = "自分の姓名" Range("B3").Value = “山田" & "太郎" End SubVBAの例題1(定数出力)
【Sheet1シートのA1セルに文字列「好きな数」B1セルに 数7を記入、出力ボックスで「嫌いな数=13」と表示。 出 力ボックスで「好きな数=」に続きB1セルの内容を表示。 C1セルにB1セルの内容をコピー】 Sub 定数出力() Sheets("Sheet1").Select Range("A1").Value = "好きな数" Range("B1").Value = 7 MsgBox "嫌いな数=" & 13MsgBox "好きな数=" & Range("B1").Value
VBAの変数と入力ボックス例
Sub 敬称付()
Dim namae As String, keisho As String
Sheets("Sheet1").Select
namae = Range("A1").Value
keisho =InputBox("敬称は?")
namae = namae & keisho Range("A2").Value = namae End Sub
【Sheet1シートのA1セルに名前を入れ、インプットボック スに敬称と結合して、A2セルに表示するプログラム】
VBAの変数宣言
• 変数宣言はDimAs文を用い下記書式である。 Dim変数名 As データ型 • データ型は変数にどんな種類(タイプ)の値が入 るかを指定する。 【代表的なデータ型】 データ型 意味 データの範囲 String 文字列型 2GBまでの文字列 Integer 整数型 -32,768~32,767の整数 Double 倍精度実数型 小数含め15桁程度VBAの入力ボックス
• 入力ボックスを用い変数やセルにデータをキー 入力するには、 変数またはセル= InputBox(プロンプト) • プロンプトとは、ユーザに入力を促す文字列で 入力欄上に表示される。• InputBoxはString型データを返す関数で「OK」
クリックで入力欄の文字列、「キャンセル」クリッ クで空文字列 ""を返す。