• 検索結果がありません。

ORの手法ゲームの理論3 (Excelによるゲーム理論実習)

N/A
N/A
Protected

Academic year: 2021

シェア "ORの手法ゲームの理論3 (Excelによるゲーム理論実習)"

Copied!
36
0
0

読み込み中.... (全文を見る)

全文

(1)

統計科学第4回

(2)

先週の感想からA

• 前回の授業では机上で学習を行い、次の授業で 実際にエクセルを使って実習する流れがとてもよ いと思いました。 • 机上で解ったつもりでも、エクセルの操作に躓い たりしたとき、先生に尋ねることができるので問 題解決ができて良かったです。 • テーマは面白かったのですが、先頭文字コードを 101で割った余りが相性とは関連ないように思わ れるので、本当に相性診断結果が期待される式 であればもっと面白いと思う。

(3)

先週の感想からB

• 論理を学んだ上で実践する授業は、わかった 気になった部分が本当に分っているかどうか 明確に確認できてよかった。 • 今後難しいと思われる論理もステップを踏むこ とで簡単にクリアして行けたら嬉しいです。 • 実習形式は覚えやすいのでいいと思ったが、 印刷が自腹なのは負担になるのでmanabaで の提出を希望します。

(4)

はじめてのVBA

• Excelに作成した表やデータベースに,簡単な

マクロを組み込むだけで実用的なシステムに できる。

• このマクロを作るプログラミング言語がExcel

VBA(Visual Basic for Applications) である。 • 本講義では、応用ソフトExcelの中で実行でき

るマクロを、プログラミング言語ExcelVBAで作 成する方法を学ぶ。

(5)

プログラムとは何?

• プログラムとはコンピュータに対する命令書であ り、プログラム=ソフト(ウェア)である。 • コンピュータ(ハードウェア)は、プログラム(ソフ ト)が無ければ何もできない「ただの箱」。 • プログラムを作ることをプログラミングといい、そ の言語がプログラミング言語で、次に大別できる。 – 基本ソフト(OS):WindowsやMacOSなど,応用ソフト の土台のソフト – 応用ソフト(アプリケーション):Word, Excel,ブラウザ (IEなど):仕事や生活で活用するソフト – マクロ

(6)

なぜExcelVBAを学ぶのか?

• マクロ以外にパソコンで動く応用ソフトを作成する には、VisualBasic(VB)やVC++などのプログラミ ング言語を使用する。 • それらの方が役に立つ気がする。 • ExcelVBAを学ぶメリットは、 1. VBやVC++に比べ文法が理解し易い。 2. Excelインストールの全パソコンでプログラム可能。 3. VBの文法に近い。VC++,Javaなど他言語のプログラ むでも役立つ。 4. 事務処理システムを安く短時間に作れるので、人材 ニーズが高い。

(7)

VBA用の設定「開発」の準備

• Excelのリボン内にVBA用の[開発]タブがな い場合、タブを表示するには、 ①「ファイル」タブをクリック ②「オプション」→「リボンのユーザ設定」をクリック ③「メインタブ」欄の「開発」をチェックして「OK」 • この作業は個人用パソコンなら最初だけ行え ばよいが、大学パソコンの環境が毎回初期 化される場合は、電源ONの度に行う。

(8)

VBAを始める

• Excelを起動する(Excelアイコンをダブルクリック し起動後「空白ブック」を選択)。 • ExcelVBAの環境VBEを起動する. ①リボンの「開発」タブを クリック。 ②「Visual Basic」をクリック。 図1 VBEの画面

(9)

VBEとワークシートの切替え

• VBEとワークシートの切替えは図2のように画面

の一番下のタスクバーで行う。

マウスでポイント後表示したい方をクリック

(10)

プログラムの新規作成

• VBAを書き込むウィンドウ(コードウィンドウ)を新 規作成する。「挿入」→「標準モジュール」の順にク リック ブックファイル名(初期値は「Book1」) 図3 コード ウィンドウ

(11)

VBAの実行

【例題1】図4(a)の入力ウィンドウで自分の今の年齢 を入力し「OK」クリックし図4(b)に十年後の年齢を表 示するVBAを作成する。 (a)入力 (b) 出力 図4 例題1の実行

(12)

VBAプログラムの入力

• コードウィンドウに図5のVBAプログラムを書く。 • 英字・数字・記号・スペースはすべて半角で入力

する。

(13)

VBAの基本構造

• プログラムの基本形 Sub マクロ名() 文1; 文2; End Sub • 文1,文2はコンピュータ命令で上から順に実行する。 • 条件により実行文を選んだり同じ文を繰返し実行 する方法もある。 • 原則1行1文だが複数文を半角セミコロン;で区切り 文1;文2;・・と1行入力できる。

(14)

VBAの実行(VBEとワークシート)

• VBE

① SubからEndSub間のある箇所にカーソルを おく。 ② 実行ボタンをクリック

• ワークシート

① ワークシートを表示 ② リボンの開発タブ→マクロの順にクリック ③ マクロ名を選択し実行をクリック

(15)

VBAの保存

• VBAプログラムを「Ex01.xlsm」で保存する。 ① ワークシートを表示 ② 「ファイル」 →「名前を付けて保存」をクリック ③ 「コンピュータ」→「参照」をクリック ④ ファイル名Ex01(拡張子.xlsm不要)、ファイ ル種類をExcelマクロ有効ブックとし「保存」をク リック • Excelブックは通常ファイル名の後に拡張 子.xlsxが自動で付くが、VBAを含むと拡張子 xlsmが付く。

(16)

VBAの保存

(17)

VBAファイルを読込み実行

① VBAファイルEx01.xlsmを開く。 ② 「コンテンツ有効化」ボタンをクリック ③ 「セキュリティの警告」は「はい」をクリック ④ VBAが含まれるがコードウィンドウが表示され ない場合は図7の「Module1」をダブルクリック。 図7 コードウィン ドウの再表示

(18)
(19)

好きな花(その1)

桜(さくら)

桜の花言葉:「神秘な心」「優れ

た美人」「純潔」「精神美」

桜を見て感動し、『笑顔 』になり

、その『笑顔 』はどんどん連鎖し

、みんなが『笑顔』になる。

(20)

札幌市内の桜の名所

(その1)

円山公園

北海道神宮に隣 接し1034本の桜 が咲き乱れる公 園。公園で楽し み神社で味わう も良し。 見頃:4月下旬 ~5月中旬

(21)

小樽市内の桜の名所

(その1:

手宮公園

)

700本の濃淡様 々な桜のピンク の上に空の青、 眼下に石狩湾の 青と、対岸の山 の残雪のコントラ ストが美しい。 見頃:5月上旬 ~中旬

(22)

小樽市内の桜の名所

(その2:

小樽公園

)

繁華街花園の近く 明治開園の歴史あ る公園。小樽市花 ツツジの他エゾヤ マザクラやソメイヨ シノなど900本の桜 。 見頃:5月上旬 ~中旬

(23)

小樽市内の桜の名所

(その3:

水天宮

)

小樽港を見下ろ す高台の神社。 広げた枝に咲き 誇る桜と背景の 白雪を残す山。神 社の厳かさと美し い眺めが一体化 。 見頃:5月上旬 ~中旬

(24)

VBAの文字入力ポイント

• プログラムは大半を半角で入力する。 • 半角文字は半角英数入力モードの入力が効 率良い。(文字変換確定の手間を省略可) • ひらがな(全角入力)と半角英数モード(半角入 力)の切替は[半角/全角]キーを用いる。 • 半角シングルクォート‘から行末まではコメント。 • データを読み書きするシート選択は、 Sheets(シート名).Select • シート名は半角ダブルクォート"で囲む。

(25)

VBAの定数と代入

• プログラム中の変化しないデータを定数という。 • "好きな数"は文字列定数,7は数値定数である。 • 文字列定数はダブルクォート"で囲む。 • 特定セルへのデータ代入は、 Range(セル番地).Value=定数,計算式,セル,変数 • (左辺)=(右辺)は「左辺に右辺を代入」。 • 左辺は必ず(セルや変数の)入れ物である。 • 決して定数や計算式を置いてはならない。

(26)

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 Sub

(27)

VBAの四則演算

• 四則演算等の計算式に次の記号文字列

を用いる。

• +(足算) -(引算,負数) *(掛算) /(割算) • ¥(整数割算商) Mod(整数割算余) ^(べき乗)

• 計算優先順位は小中学校の数学と同じ。

• ( ) 中の計算を優先する。 • 中括弧{ }や大括弧[ ]を使えない。

(28)

VBAで文字列セル入力例

【Sheet1のA3に文字列「自分の姓名」、B3に自分 の姓と名の連結結果を記入するプログラム】 Sub 文字列式のセル出力() Sheets("Sheet1").Select Range("A3").Value = "自分の姓名" Range("B3").Value = “山田" & "太郎" End Sub

(29)

VBAの例題1(定数出力)

【Sheet1シートのA1セルに文字列「好きな数」B1セルに 数7を記入、出力ボックスで「嫌いな数=13」と表示。 出 力ボックスで「好きな数=」に続きB1セルの内容を表示。 C1セルにB1セルの内容をコピー】 Sub 定数出力() Sheets("Sheet1").Select Range("A1").Value = "好きな数" Range("B1").Value = 7 MsgBox "嫌いな数=" & 13

MsgBox "好きな数=" & Range("B1").Value

(30)

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セルに表示するプログラム】

(31)

VBAの変数宣言

• 変数宣言はDimAs文を用い下記書式である。 Dim変数名 As データ型 • データ型は変数にどんな種類(タイプ)の値が入 るかを指定する。 【代表的なデータ型】 データ型 意味 データの範囲 String 文字列型 2GBまでの文字列 Integer 整数型 -32,768~32,767の整数 Double 倍精度実数型 小数含め15桁程度

(32)

VBAの入力ボックス

• 入力ボックスを用い変数やセルにデータをキー 入力するには、 変数またはセル= InputBox(プロンプト) • プロンプトとは、ユーザに入力を促す文字列で 入力欄上に表示される。

• InputBoxはString型データを返す関数で「OK」

クリックで入力欄の文字列、「キャンセル」クリッ クで空文字列 ""を返す。

(33)

VBAの変数宣言強制化

• VBAではDimで変数宣言を行わず変数を使える。 • その時変数はすべてVariant型(何でも型)とな る。一見楽に見えるがVariant型変数にはどの データも代入できるのでデバッグが難しくなる。 • 「OptionExplicit」は宣言しない変数は警告する 設定である。 • 変数宣言強制するには、「ツール」→「オプショ ン」→「編集」→「変数の宣言を強制する」にチェ ック→「OK」をクリックする。 • コードウィンドウの先頭行に「OptionExplicit」と

(34)

課題1 ラブラブカップル

【キーボードから「あなたの名前」と「好きな人の名前」を 入力し、“「あなた」と「好きな人」はラブラブです。”と表示 するVBAプログラムを作成せよ】 <ヒント1>名前の入力はInputBox関数を用いる。 <ヒント2>出力表示“「あなた」と「好きな人」はラブラブで す。”はMsgBox関数を用いる。思いました。”をB2 に入 れる。

(35)

課題2 名前と年齢入力

【名前と年齢を聞き、「〜さんは若く見えますね。(年齢-5)歳く らいだと思いました。」と表示するVBAプログラムを作成せよ】 <ヒント1>名前と年齢はInputBox関数を用いる。 <ヒント2>出力表示はMsgBox関数を用いる。 <ヒント3>その後Range関数を用い、名前をA1、"さんは若く見 えますね"をB1、年齢-5をA2、“歳くらいだと思いました。”をB2 に入れる。

(36)

課題3 講義と課題の感想

1.

講義の難易度はどうでしたか?

2.

課題1と課題2の難易度はどうでしたか

3.

その他(何でも)気づいたことを書いてく

ださい。

参照

関連したドキュメント

Maurer )は,ゴルダンと私が以前 に証明した不変式論の有限性定理を,普通の不変式論

Maurer )は,ゴルダンと私が以前 に証明した不変式論の有限性定理を,普通の不変式論

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

解析の教科書にある Lagrange の未定乗数法の証明では,

 当図書室は、専門図書館として数学、応用数学、計算機科学、理論物理学の分野の文

(注)本報告書に掲載している数値は端数を四捨五入しているため、表中の数値の合計が表に示されている合計

わかりやすい解説により、今言われているデジタル化の変革と

各テーマ領域ではすべての変数につきできるだけ連続変量に表現してある。そのため