「入力」はInputBoxやテキストボックスに限らず、 セルからのデータの入力や、チェックボックス等からの入力全てを含める。

Slides:



Advertisements
Similar presentations
1 エクセル (3) の目次 ②参照演算子と演算子参照演算子と演算子 ③参照セルの表示法参照セルの表示法 ④セルの参照方法セルの参照方法 ⑤エラーについてエラーについて ⑥シグマ( Σ )関数シグマ( Σ )関数 ⑦条件付書式条件付書式 ⑧問題 (1)問題 (1) ⑨問題 (2)問題 (2) ⑩問題.
Advertisements

情報基礎実習 I (第6回) 木曜4・5限 担当:北川 晃. Stream クラスを用いたファイルの接続 … Dim インスタンス名 As New IO.StreamReader( _ “ ファイルの絶対パス ”, _ System.Text.Encoding.Default) … s = インスタンス名.
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
1 情報基礎 A 第 6 回 プログラミング入門 VBA の基本文法 1 - 計算の基本構造とプログラミング - 準備・変数・データの入出力 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
5.制御構造と配列 場合分け( If Then Else , Select Case ) 繰返し( Do While ) 繰返しその2( For Next )
コンピュータ演習 Excel 入門 岡田孝・山下雅啓 Excel の機能は膨大 その中のごく一部を紹介 表計算機能 – データの入力、表の作成、計算など グラフ機能 – 棒グラフ、円グラフなどグラフ作成 データベース機能 – 並べ替え(ソート)、検索、抽出など マクロ機能 – VBA で自動化したマクロを作成可能.
シミュレーション論Ⅰ 第 7 回 待ち行列のシミュレーション(2). 第 6 回のレポート(解答例) 乱数表より乱数を記入し、到着間隔・サービス時間にした がってグラフを作成する 例) 最大待ち人数:2人 最大待ち時間:5分 平均待ち時間:3分.
情報処理 第12回.
情報基礎実習I (第4回) 木曜4・5限 担当:北川 晃.
C言語 配列 2016年 吉田研究室.
徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
VBAを通して プログラム言語の基本構造を学ぶ
情報基礎実習I (第7回) 木曜4・5限 担当:北川 晃.
情報基礎演習I(プログラミング) 5月25日 水曜5限 江草由佳
12.3,E,-15, 12.3,E5,+,=, >,<,…,
6.3 2次元DFT (1)2次元DFTとは 画像のような2次元信号をサンプリングしたデータを 2次元DFTを
VBA H106077 寺沢友宏.
マルチエージェント・シミュレーション(2)
第四回 VB講座 画像とタイマー.
情報基礎A 第13週 VBAプログラミング VBAの基本文法7・実際のデータ処理
情報基礎実習I (第5回) 木曜4・5限 担当:北川 晃.
情報基礎A 第10週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
情報基礎A 第7週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
情報基礎A 第14週プログラミング 実際のデータ処理での応用(2)
4.2 連立非線形方程式 (1)繰返し法による方法
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
6.4 離散的コサイン変換 (DCT : discrete cosine transform ) (1)DCTとは
10進ベーシックファイル入出力.
コンピュータと情報 第15回 Excelの使い方 その4.
テキストボックス、チェックボックス×2、コマンドボタンを配置する。 コマンドボタンに機能を与える
第9回:Microsoft Excel (1/2)
コンピュータと情報 第14回 Excelの使い方 その4.
実例で学ぶプログラミング VBAを用いて簡単なゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
本時の目標 「簡単なプログラム言語の意味を理解し、マクロ機能を使って簡単なプログラムを作ることができる。」
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
第二回 VB講座 電卓を作ろう.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
地域情報学演習 VBAプログラミング 第3回 2017年10月24日
情報実習I (第7回) 木曜4・5限 担当:北川 晃.
第6回:ラケットを動かそう! (キーボードによる物体の操作)
相関.
実践プログラミング入門2 配列を使ってゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
すべてのレポートの提出期限 1月22日 火曜日 これ以降は特殊な理由が無い限り レポートを受け取りません!
仕様4 元素名他 初期画面作成 仕様1 元素数の入力 仕様2 分子名の判定 仕様3 飽和炭化水素の判定 CとH数だけではだめ
結果によって表示などを変えるときは、変数に結果に対応した文言を格納し、
VBで始めるプログラミング 第三回 コードを書こう!! まきはた@ナーク ’04/05/21.
情報基礎Ⅱ (第5回) 月曜4限 担当:北川 晃.
プログラムの基本構造と 構造化チャート(PAD)
アルゴリズムとデータ構造 2011年7月8日課題の復習
先週の復習 2重ループを用いた、 表の記入と読み込み.
表計算 Excel 演習 1.Excel を使ってみる.
シミュレーション論Ⅰ 第7回 シミュレーションの構築と実施.
手書き文字の自動認識アプリケーション 15K1013 坂本 倖輝
基礎プログラミング演習 第6回.
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
電気・機械・情報概論 VBAプログラミング 第1回 2018年6月25日
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
ウェブデザイン演習 第6回.
情報工学Ⅱ (第8回) 月曜4限 担当:北川 晃.
アルゴリズムの視覚化 この図は左が大きく、 右が小さくなるようにソートしている  この図は左が大きく、  右が小さくなるようにソートしている
エクセル(3)の目次 参照演算子と演算子 参照セルの表示法 セルの参照方法 エラーについて シグマ(Σ)関数 条件付書式 問題(1)
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
7.2 回帰曲線 身長と体重…関係がありそう? ??? 身長と体重の関係をグラフで観察する.
3.テキストボックスによる データ入力 データ入力と表示のプログラム.
情報基礎A 第14週プログラミング 実際のデータ処理での応用(2)
5.2 グレゴリー・ニュートン(Gregory-Newton)の補間式 (1)導入
5.3 ラグランジェ(Lagrange)の補間式
8.数値微分・積分・微分方程式 工学的問題においては 解析的に微分値や積分値を求めたり, 微分方程式を解くことが難しいケースも多い。
Presentation transcript:

「入力」はInputBoxやテキストボックスに限らず、 セルからのデータの入力や、チェックボックス等からの入力全てを含める。 始めに空白の九九表が表示され、出題ボタンを押すたびに九九の 問題を出題、正誤を知らせて、九九表を埋めていく

始めに空白の九九表が 表示され、出題ボタンを 押すたびに九九の問題 を出題、正誤を知らせて 九九表を埋めていく Cells = ""

九九の問題作成 出題 正誤判定 Dim i As Integer 1行目とA列に九九の段を表示する For i = 1 To 9 '九九表作成 Cells(i + 1, 1).Value = i Cells(1, i + 1).Value = i Next Dim a As Integer, b As Integer '乱数用×2 Dim c As Integer '解答用 a = Int(Rnd() * 9 + 1) '1~9の乱数発生 b = Int(Rnd() * 9 + 1) '1~9の乱数発生 c = InputBox(a & "×" & b & "=", "出題") '出題 If c = a * b Then '正解の場合 MsgBox "答えは" & a * b & "です", , "正解" Else '間違いの場合 MsgBox "答えは" & a * b & "です", , "間違い" End If Cells(a + 1, b + 1).Value = a * b '九九表を埋める 1行目とA列に九九の段を表示する 九九の問題作成 出題 正誤判定

改良! Dim i As Integer For i = 1 To 9 '九九表作成 Cells(i + 1, 1).Value = i Next Dim a As Integer, b As Integer '乱数用×2 Dim c As Variant '解答用 Variant型なのはエラー防止 lp: '重複があったときに乱数ふり直し a = Int(Rnd() * 9 + 1) '1~9の乱数発生 b = Int(Rnd() * 9 + 1) '1~9の乱数発生 If Cells(a + 1, b + 1).Value <> "" Then GoTo lp '重複していた場合 c = InputBox(a & "×" & b & "=", "出題") '出題 If c = "" Then c = 0 '空白でEnterを押したら強制的に間違いにする If c = a * b Then '正解の場合 MsgBox "答えは" & a * b & "です", , "正解" Else '間違いの場合 MsgBox "答えは" & a * b & "です", , "間違い" End If Cells(a + 1, b + 1).Value = a * b '九九表を埋める 改良! エラー防止の準備 InputBoxで何も入れずに Enterを押した時に エラーが出ないように するため。 出題が重複した場合の処理 九九表が出題済みのフラグも 兼ねている エラー防止 InputBoxで何も入れずに Enterを押した時の処理

三点から二次関数を導出する一般式を求めればほぼ完成!

係数a~cの算出と式の表示 Dim x(3) As Single, y(3) As Single 'プロット1~3用 Dim a As Single, b As Single, c As Single '二次関数の係数 Dim a1 As Single, a2 As Single '係数計算補助 Dim i As Integer 'For文用 For i = 1 To 3 'プロット1~3の位置を変数に格納 x(i) = Cells(i + 1, 2).Value 'B2~B4セル Xの値を取得 y(i) = Cells(i + 1, 3).Value 'C2~C4セル Yの値を取得 Next '係数算出 aは複雑なので分子a1と分母a2に分けて計算 a1 = (y(2) - y(3) - (y(1) - y(2)) * (x(2) - x(3)) / (x(1) - x(2))) a2 = (x(2) ^ 2 - x(3) ^ 2) - (x(1) + x(2)) * (x(2) - x(3)) a = a1 / a2 b = (y(1) - y(2)) / (x(1) - x(2)) - a * (x(1) + x(2)) c = y(1) - a * x(1) ^ 2 - b * x(1) Cells(8, 1).Value = "二次関数 y=" & a & "x^2 + " & b & "x + " & c

続き グラフの描画 Cells(9, 1).Value = "x" 'ラベルの表示 Cells(9, 2).Value = "y" For i = 1 To 10 'プロットのデータを出力 x=1~10 Cells(9 + i, 1).Value = i Cells(9 + i, 2).Value = a * i ^ 2 + b * i + c Next 'グラフがすでにあったら削除 If ChartObjects.Count > 0 Then ChartObjects.Delete 'マクロの記録で作成 グラフの描画 Range("A10:B19").Select ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select ActiveChart.SetSourceData Source:=Range("Sheet6!$A$10:$B$19")

Dim i As Integer, v As Integer '4×4カード準備 Dim a As Integer '乱数発生用 '4×4カード準備 For i = 1 To 4 For v = 1 To 4 a = Int(Rnd() * 16 + 1) Cells(i, v).Value = a Cells(i, v).Font.Color = RGB(0, 0, 0) Next Dim i As Integer, v As Integer '4×4スキャン用 Dim a As Integer '乱数発生用 Dim b As Integer 'ビンゴチェック用 '番号発表 a = Int(Rnd() * 16 + 1) MsgBox "番号は" & a & "です" '番号にマークをつける For i = 1 To 4 For v = 1 To 4 b = Cells(i, v).Value If b = a Then Cells(i, v).Font.Color = RGB(255, 0, 0) End If Next

変則ビンゴ改良版 重複番号なし、ビンゴ判定つき Dim i As Integer, v As Integer '4×4カード準備 Dim a As Integer '乱数発生用 Cells = "" '4×4カード準備 For i = 1 To 4 For v = 1 To 4 looptop: '重複があったら乱数を振り直す a = Int(Rnd() * 16 + 1)     'F(番号+1)セルが空白でないなら既に出ている。 If Cells(a + 1, 6).Value <> "" Then GoTo looptop Cells(a + 1, 6).Value = a '使用済みフラグをたてる Cells(i, v).Value = a Cells(i, v).Font.Color = RGB(0, 0, 0) Next '最後にフラグをクリア For i = 1 To 16 Cells(i + 1, 6).Value = "" 番号履歴と言いつつ、 実は数字の利用済みフラグ

次ページに続きます。 変則ビンゴ改良版 重複番号なし、ビンゴ判定つき 番号履歴と言いつつ、 実は数字の利用済みフラグ Dim i As Integer, v As Integer '4×4スキャン用 Dim a As Integer '乱数発生用 Dim b As Integer 'ビンゴチェック用 Cells(1, 6).Value = "番号履歴" '番号発表 looptop: '「カード準備」と全く同じ a = Int(Rnd() * 16 + 1)     'セルが空白でないなら既に出ている。 If Cells(a + 1, 6).Value <> "" Then GoTo looptop Cells(a + 1, 6).Value = a '使用済みフラグをたてる MsgBox "番号は" & a & "です" '番号にマークをつける For i = 1 To 4 For v = 1 To 4 b = Cells(i, v).Value If b = a Then Cells(i, v).Font.Color = RGB(255, 0, 0) End If Next 番号履歴と言いつつ、 実は数字の利用済みフラグ 次ページに続きます。

続き 文字の色をフラグとして使い、 縦、横、斜めで色が変わっている 数字をカウント 色が変わっている数字の数が 4ならビンゴ 'ビンゴのチェック Dim x(4) As Integer, y(4) As Integer '縦横ビンゴチェック用 Dim c(4) As Integer '右斜め、左斜めビンゴチェック用 c(3),c(4)はダミー 'フラグのクリア For i = 1 To 4 x(i) = 0 y(i) = 0 c(i) = 0 Next 'ビンゴのチェック For文をネストさせるともっとシンプルになる For v = 1 To 4 '横方向1~4行目の色が変わっている数字をカウント If Cells(1, v).Font.Color = RGB(255, 0, 0) Then x(1) = x(1) + 1 If Cells(2, v).Font.Color = RGB(255, 0, 0) Then x(2) = x(2) + 1 If Cells(3, v).Font.Color = RGB(255, 0, 0) Then x(3) = x(3) + 1 If Cells(4, v).Font.Color = RGB(255, 0, 0) Then x(4) = x(4) + 1 '縦方向1~4列目の色が変わっている数字をカウント If Cells(v, 1).Font.Color = RGB(255, 0, 0) Then y(1) = y(1) + 1 If Cells(v, 2).Font.Color = RGB(255, 0, 0) Then y(2) = y(2) + 1 If Cells(v, 3).Font.Color = RGB(255, 0, 0) Then y(3) = y(3) + 1 If Cells(v, 4).Font.Color = RGB(255, 0, 0) Then y(4) = y(4) + 1 '右斜めA1~D4の色が変わっている数字をカウント If Cells(v, v).Font.Color = RGB(255, 0, 0) Then c(1) = c(1) + 1 '左斜めA4~D1の色が変わっている数字をカウント If Cells(v, 5 - v).Font.Color = RGB(255, 0, 0) Then c(2) = c(2) + 1 'ビンゴのチェック c(3)、c(4)はダミー If x(i) = 4 Then MsgBox i & "行目横方向ビンゴ" If y(i) = 4 Then MsgBox i & "列目縦方向ビンゴ" If c(i) = 4 Then MsgBox "斜め方向ビンゴ" 文字の色をフラグとして使い、 縦、横、斜めで色が変わっている 数字をカウント 色が変わっている数字の数が 4ならビンゴ