情報基礎A プログラミング入門 VBAの基本文法

情報基礎A 第9週
プログラミング入門
VBAの基本文法1
準備・変数・データの入出力
徳山 豪・全 眞嬉
東北大学情報科学研究科
システム情報科学専攻
情報システム評価学分野
1
プログラミングとは

コンピュータに作業をさせる指示を作成する

アルゴリズムの設計




論理の組み立て
「理詰め」の手順生成の訓練
プログラム言語による実装(コーディング)
プログラム言語の習得



プログラムを読む
プログラムを変更する
デバッグ(プログラムの間違え直し)を行う
2
プログラミング心得


言語の習得: 習うより慣れろ
例を見て、それを真似て習得する



失敗して学ぶのが大切




This is a pen → This is a dog
よい例を見るのが大切 (いい発音の英語を聞くのと同じ)
This is a apple × ??
I is a man × ??
間違えたプログラムを実行させると、システムが間違えて
いることを教えてくれます
間違えた理由を推理する:論理力と想像力
3
実習で用いるVBA

Visual Basic 言語



VBA: エクセルのマクロを記述する


Basic 言語の拡張
オブジェクト指向型言語のフレーバーを持つ
Visual Basic 言語の方言(エクセル地方の)
マクロ: ソフトウエアで用いる特定の一連の作
業をプログラムとしてまとめたもの。

ユーザが自分に便利なものを作成する
4
実習のプラン


エクセルのマクロ機能を用いる
マクロの作り方





動作記録による自動生成
プログラミングによる作成
動作記録によって自動生成したマクロを手本に
する
マクロを読む、変更する
マクロを自分で作成する
5
プログラムを書くための準備
コントロールツール
ボックス
Visual Basic エディタ
マクロ記録ボタン
マクロ実行ボタン
表示→ツールバー →
Visual Basic
6
セキュリティ設定

マクロウィルス


マクロで作成された不正なプログラム
マクロが含まれたファイルを開けないようにするため警告

セキュリティレベルを「中」に変更
ツール → マクロ→ セキュリティ
7
プログラムを書くための準備
Visual Basic エディタ
コードの
表示
8
プログラムを書くための準備

標準モジュールで記述

シートやフォームに関連しないコード
挿入→標準モジュール
9
もっとも簡単なプログラム
メッセージ出力
Sub myprogram1()
Msgbox “こんにちは”
End Sub
メッセージボックスに書き出す機能 出力したいメッセージを記述
Msgbox “
”
10
もっとも簡単なプログラム
メッセージ出力
プログラム名(自分で名前を付ける)
Sub myprogram1()
処理内容を記述
Msgbox “こんにちは”
Msgbox “情報基礎Aの時間です”
プログラムの
実行順序
メッセージボックスに書き出す
End Sub
11
変数


値を入れておく箱のようなもの
変数の宣言

例:整数の値が入る“x”と言う名前の変数を用意する


変数名は自分で決める
Dim x As Integer

水色の箱は整数の箱
(Integer型)
Integer型の変数xを宣言する
abc
x
a
x1
english
seisu
黄色の箱は文字の箱
12
(String型)
変数の宣言
Sub myprogram2()
Dim x As Integer
x=18
Msgbox x
End Sub
13
変数の宣言
Sub myprogram2()
Dim x As Integer
x=18
Msgbox x
Msgbox x + 1988
End Sub
14
変数の宣言
Sub yeartrans1()
’ 平成を西暦に直すプログラム
Dim x As Integer
x=18
Msgbox “平成” & x & “ 年は西暦” & x + 1988
End Sub
15
変数の宣言
Sub yeartrans1()
プログラム中に記述する説明文
「’」を使いコメント文を書く
「’」から改行までの記述はプログラムに反映されない
コメント文
’ 平成を西暦に直すプログラム
変数 x を導入。整数値であることを宣言
Dim x As Integer
x=18
Msgbox “平成” & x & “ 年は西暦” & x + 1988
End Sub
複数の要素をメッセージボックス
に繋げて表示
16
データの入力
Sub yeartrans2()
‘
‘ 平成を西暦に直すプログラム
‘
Dim x As Integer
Dim y As Integer
x= InputBox(“平成の年度を入力しなさい”)
y = x + 1988
Msgbox “平成”& x & “年は西暦” & y & ”年です”
End Sub
17
データの入力
Sub yeartrans2()
‘
‘ 平成を西暦に直すプログラム
‘
ユーザが入力したものをxとする
Dim x As Integer
Dim y As Integer
x= InputBox(“平成の年度を入力しなさい”)
y = x + 1988
Msgbox “平成”& x & “年は西暦” & y & ”年です”
End Sub
18