2008年01月09日

第25回複数条件のIf文

第5回では、入力した数値が
70以上なら合格、70未満なら不合格
という判定でした。

今回は以下の4段階評価を行います。・・・@

80 〜 100 優
60 〜 79 良
30 〜 59 可
0 〜 29 不可

さらに今回は以下のエラー処理も追加します。・・・A

未入力またはブランク入力時、未入力エラー
数字でない文字列混入時、文字列混入エラー
少数混入時、少数混入エラー
0〜100ではない整数混入時、範囲外エラー


[初期設定]
ファイル名:Book1.xls
シート名:Sheet1
下記の値を設定する
1行A列:35

[マクロの処理]
1行A列の値を判定し、判定結果を1行B列に設定する。
判定方法は上記@とAを参照して下さい。

まずは、下記のMacro1を作成して下さい。

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2008/01/09 ユーザー名 :
'

'1行1列の値を変数workに格納
Dim work As String
work = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1))

'workの値を判定し、判定結果を1行2列に格納
If "" = work Then
'未入力またはブランク入力時
Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "未入力エラー"
ElseIf False = IsNumeric(Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1)) Then
'文字列混入時
Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "文字列混入エラー"
ElseIf 0 <> InStr(1, work, ".", vbTextCompare) Then
'少数混入時
Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "少数混入エラー"
ElseIf 80 <= work And work <= 100 Then
'80〜100の整数値
Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "優"
ElseIf 60 <= work And work <= 79 Then
'60〜79の整数値
Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "良"
ElseIf 30 <= work And work <= 59 Then
'30〜59の整数値
Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "可"
ElseIf 0 <= work And work <= 29 Then
'0〜29の整数値
Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "不可"
Else
'0〜100ではない整数値
Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "範囲外エラー"
End If



End Sub

1行A列に35を設定し、マクロを実行してみて下さい。
1行B列に"可"が設定される事を確認して下さい。

1行A列にあらゆる値を設定して、
仕様どうりに動作しているか確認して下さい。

ソースコードについては、次回説明します。

ではまた・・・
posted by ぷろぐらまー at 05:55| Comment(0) | TrackBack(0) | 入門偏 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/77323108
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Google
 
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。