Microsoft Word - VBA基礎(3).docx

Similar documents
方程式の解法

sinfI2005_VBA.doc

MS-ExcelVBA 基礎 (Visual Basic for Application)

コンピュータ概論

PowerPoint プレゼンテーション

Microsoft Word - VBA基礎(2).docx

B 5 (2) VBA R / B 5 ( ) / 34

1. 入力画面

プログラミング基礎

ExcelVBA

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(VBA) サンプル問題 知識科目 第 1 問 ( 知

Excel Excel Excel = Excel ( ) 1

プログラミング入門1

Microsoft PowerPoint - VBA解説1.ppt [互換モード]

Microsoft PowerPoint - Visualプログラミング

プログラミング基礎

[Excelが自動化するVBAの魔法2]購入者限定テキスト

PowerPoint プレゼンテーション

プログラミングA

Taro-Basicの基礎・条件分岐(公

2 X Y Y X θ 1,θ 2,... Y = f (X,θ 1,θ 2,...) θ k III 8 ( ) 1 / 39

プログラミングA

連立方程式の解法

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

Microsoft Word - VBA基礎(6).docx

コンピュータ概論

Excel Excel Excel = Excel III 7 ( ) 1

PowerPoint プレゼンテーション

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

情報基礎A

PowerPoint プレゼンテーション

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

Javaによるアルゴリズムとデータ構造

D0050.PDF

Java講座

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

D0020.PDF

2X Y Y X θ 1, θ 2,... Y = f(x, θ 1, θ 2,...) θ k III 8 ( ) 1 / 39

Microsoft PowerPoint - Prog05.ppt


Taro-数値計算の誤差(公開版)

計算機プログラミング

45 VBA Fortran, Pascal, C Windows OS Excel VBA Visual Basic Excel VBA VBA Visual Basic For Application Microsoft Office Office Excel VBA VBA Excel Acc

PowerPoint プレゼンテーション

Microsoft PowerPoint - C_Programming(3).pptx

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft PowerPoint - vp演習課題

Microsoft PowerPoint - class04.ppt

1. if~ 1.1. 確認を促す まずは簡単な分岐プログラムを作ってみましょう 以下はそのフローチャートです 開始 charc よろしいですか? (y/n) 変数 c の値が 'y' と等しいかどうか c c='y' Yes よろしいですね No 終了 1: 2: 3: 4: 5: 6: 7: 8

教材ドットコムオリジナル教材

情報処理Ⅰ

フローチャートの書き方

Microsoft Word - 課題1_2.doc

回文作成支援プログラム

PowerPoint プレゼンテーション

PowerPoint Presentation

回文作成支援プログラム

PowerPoint プレゼンテーション

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

Microsoft PowerPoint - 3.pptx

gengo1-6

<4D F736F F D208DEC90AC837D836A B81698F4390B394C5816A2E646F63>

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

PowerPoint プレゼンテーション

Microsoft Word - Training4_判断と制御.docx

D0120.PDF

情報資源組織演習B:

Microsoft PowerPoint - 4.pptx

教科書原稿

JavaプログラミングⅠ

PowerPoint プレゼンテーション

Microsoft Word - 18環設演付録0508.doc

エクセルによる数値計算と化学への応用

プログラミング演習

untitled

スライド 1

5

JavaプログラミングⅠ

JavaプログラミングⅠ

Microsoft PowerPoint - C4(反復for).ppt

情報処理実習(工基3)

Scilab 勉強会 ( 第 3 回 ) 高橋一馬, 十文字俊裕, 柏倉守 平成 17 年 11 月 15 日 関数 ファイルはエディタを用いて作成する.Scilab にはエディタ SciPad が附属している.SciPad では なく他のエディタを利用してもよい. 作成した関数は Scilab に

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

最初に VBA が使用できるように マクロ と呼ばれるエクセル上のアプリ ( のようなもの ) を準備します Excel メニューの ファイル オプション を選択 表示される Excel のオプション から リボンのユーザー設定 を選択 メインタブ 内の 開発 にチェックを付けて OK をクリック

演習1

DVIOUT

バスケットボール

Lesson 1 1 EXVBA2000 Lesson01 Lesson01.xls 2

プログラミング入門1

My関数の作成演習問題集

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

Java KK-MAS チュートリアル

ブロック崩し風テニス

ルーレットプログラム

6.1 工 程 管 理 (ネットワーク 工 程 表 ) 159 VBA( 実 行 結 果 例 ) 出 力 結 果 シート 出 力 結 果 を 図 に 描 くと 下 図 のようになる. 図 6.3 ネットワーク 工 程 表 ( 出 力 結 果 より 作 図 )

メソッドのまとめ

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

kantan_C_1_iro3.indd

ギリシャ文字の読み方を教えてください

Transcription:

上に中和滴定のフローチャートを示しました この中で溶液の色を判断する部分があります このような判断はプログラムではどのように行うのでしょうか 判断に使う命令は IF 文を使います IF は英語で もし何々なら という意味になります

条件判断条件判断には次の命令を使います If 条件式 1 Then ElseIf 条件式 2 Then ElseIf 条件式 3 Then 実行文群 1 実行文群 2 実行文群 2 Else End IF 判断文は条件式が満足されている場合 ( 真 ) にすぐ次の実行文を実行し それ以外は実行せずに EndIf に飛び If 文を終了します 具体的には次のようになります 実行文群 n Sub test30() Dim x As Double x = InputBox("x に数値を入力してください ") If x < 0 Then MsgBox "x は負の数です " ElseIf x < 10 Then MsgBox "x は 0 以上 10 未満の数です " ElseIf x < 20 Then MsgBox "x は 10 以上 20 未満の数です " Else MsgBox "x は 20 以上の数です " End If

test30 を実行して x に下記の値を入れてみてください x=-1 の場合この場合には最初の文の条件式 (x<0) が満足されます そのため 画面に x は負の数です と表示して終了します x=12 の場合この場合には x<0 は満足しませんからその次の実行文 (MsgBox x は負の数です は実行しません その次の条件式 (x<10) も満足しません そして 3 番目の条件式 (x<20) は満足しますので画面に x は 10 以上 20 未満の数です と表示して終了します x=35 の場合この場合には 3 つの条件式 (x<0, x<10, x<20) のどれも満足しません そのため 一番最後の Else の実行文 ( x は 20 以上の数です を表示 ) を実行します 条件式に用いられる演算記号は次のようなものがあります 記号意味 = 左辺と右辺が等しい > 左辺が右辺より大きい < 左辺が右辺未満 >= 左辺が右辺以上 <= 左辺が右辺以下 <> 左辺と右辺が等しくないまた 条件式を複数つなぐ論理演算子 (And, Or, Not 等 ) も使うことができます 演習 x に数値を入力し x が 0 以下なら x の 2 乗を表示し x が 100 以下なら x の半分の値を表示し x が 100 より大きい時には x は 100 よりおおきなかずです と表示するプログラムを作れ

繰り返しあらゆるプログラム言語には繰り返し命令というのがあります VBA でも同じです コンピュータにとってあるルール ( プログラム ) に沿って繰り返しを行うことは得意なことです VBA では 3 種類の繰り返し命令があります 繰り返す回数や条件が決まっている場合には For Next 命令を使います たとえば 1 から 100 までの 2 乗を計算してセルに表示することを考えましょう 左のフローチャートでは x に数値を 1 個ずつ代入する流れになっていますが これでは同じような命令を 100 個書く必要があります 右のフローチャートでは繰 り返し命令を使いますので命令が簡単になります test31 を実行するとエクセルの表の A 列に 1 から 1 00 まで表示され B 列に 2 乗の値が表示されます くりかえし部分は赤で囲んだ部分です For から Next までの間の命令が繰り返されます For の次に続く部分が何回繰り返すかを意味しています i という変数はカウンタ変数で この値が 1 で始まり 100 まで繰り返すことを意味しています そして Next の次に i とありますが カウンタ変数 i の繰り返し範囲はここまでですということを示しています カウンタ変数はプログラム処理にも使うことができます Sub test31() Dim x As Long Dim x2 As Long Dim i As Integer x = 0 For i = 1 To 100 x = x + 1 x2 = x ^ 2 Cells(i, 1) = x Cells(i, 2) = x2 Next i Cells 命令では行の指定に i を用いています これにより 自動的に表示するセルの行が 1 つずつ増えます

このプログラムを見ると判断文 (IF 文 ) が含まれていません これは For Next 命令自体がその機能を持っているためです For Next 命令 For Next 命令の記述例を示します For カウンタ変数名 = 初期値 To 最終値 Step 増分繰り返すべき命令群 Next カウンタ変数名 For Next 命令では繰り返し回数がわかっている場合に用います カウンタ変数名というのは何回繰り返したかを判定するために用いる変数です ( 必ずしも繰り返し回数とは一致しない ) 上の命令文の意味はカウンタ変数を初期値から初めて 増分ずつ増加させ 最終値になるまで繰り返せということを意 味しています test32 を実行してみてください 右の表のような結果になるはずです この例では i の値が 1 から 1 ずつ増加させ 10 になるまで繰り返しなさい ということを示しています すなわち 10 回繰り返すということです x の値はカウンタ変数 i だけ増加します test33 を実行してみてください 右表の結果が表示されるはずです この例は増分が 2 です その Sub test32() Dim x As Integer Dim i As Integer For i = 1 To 10 Step 1 Cells(i, 1) = i Cells(i, 2) = x x = x + i Cells(i, 3) = x Next i Sub test33() Dim x As Integer Dim i As Integer For i = 1 To 10 Step 2 Cells(i, 1) = i Cells(i, 2) = x x = x + i Cells(i, 3) = x Next i i x(1) x(2) 1 0 1 2 1 3 3 3 6 4 6 10 5 10 15 6 15 21 7 21 28 8 28 36 9 36 45 10 45 55 i x(1) x(2) 1 0 1 3 1 4 5 4 9 7 9 16 9 16 25 ため カウンタ変数 i は 2 づつ増加します もちろんカウンタ変数には明確な数値でなくても初期値と最終値に変数を指定することができます For Next

命令でも繰り返しの回数の途中であっても抜け出すことができます その命令は Exit For です Do.Loop 命令 Do.Loop 命令は Do と Loop で囲まれた範囲の命令をある条件の間繰り返し実行するための命令です その構文には 4 種類あります Do While 条件式 1 繰り返したい命令文 Loop Do Until 条件式繰り返したい命令文 Loop 3 Do 繰り返したい命令文 Loop While 条件式 2 Do 繰り返したい命令文 Loop Until 条件式 4 1~4 の違いは 2 種類あります ひとつは条件式の位置です 条件式が Do の部分に記述されているもの (1 と 3) と Loop の部分に記述されているもの (2 と 4) です この 2 つの違いは条件判定をする位置です test34 と test35 を実行してその差を確認してください 結果が異なるはずです Do Loop 命令では条件判定が行われ その判定が True( 真 ) の場合には繰り返しを行い 偽 (False) の場合には Do Loop 命令を終了します そのため 下のように Do の部分 (test34) に条件判定がある場合には最初から判定が偽の場合には1 回もその繰り返しが実行されません x=-1 Do While x>0 x=x-1 Loop Msgbox x Sub test34() Dim x As Integer x = -1 Do While x > 0 x = x - 1 Loop MsgBox x Sub test35() Dim x As Integer x = -1 Do x = x - 1 Loop While x > 0 MsgBox x 判定が偽のため Do Loop は実行されない x=-1 が表示される

これに対して Loop の部分に条件判定がある場合 (test35) には最低でも1 回はその繰り返しが実行されます x=-1 最低でも1 回は実行さ Do れる x=x-1 Loop While x>0 x=-2 が表示される Msgbox x もう一つの違いは条件判定の部分の While 1 2 と Until 3 4 です これは英語の意味と同じです While : 条件式が真の間繰り返しを実行する Until : 条件式が真になったら繰り返しを終了する 条件式以外でこの繰り返しを終了するには Exit Do という命令があり しばしば if 文と併せて用いられます While Wend 命令 3 つめの繰り返し命令は While Wend 命令です 記述方法を示します While 条件式繰り返すべき命令群 Wend この命令では条件式が成り立っている間は繰り返し続けます 逆に条件式が成立しなくなったら繰り返しの実行が終了します test36 を実行してみてください このプログラムでは4,5 行目で変数を0に初期化しています While Wend の条件式は intadd<=100 なので intadd という変数が 100 以下の時は繰り返します 繰り返し命令では単に intadd の足し算を行っているだけです この繰り返しの中ではカウンタ変数として intadd が用いられています そして Sub test36() Dim intval As Integer Dim intadd As Integer intval = 0 intadd = 0 While intadd <= 100 intval = intval + intadd intadd = intadd + 1 Cells(intAdd, 1) = intadd Cells(intAdd, 2) = intval Wend

intadd=intadd+1 でカウンタを 1 つずつ増加させています そして intadd が 100 まで繰り返しを行い 101 になったときに終了します While Wend 命令ではこれを終了する命令がありません そのため 条件式および条件の変化をきちんと行わないと無限ループ ( いつまでたっても終わらないプログラム ) になってしまいがちです