前回作成したエラーチェックのソースコード
について説明します。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2007/12/14 ユーザー名 :
'
'過去に行ったチェック処理結果を削除する。
'(B列を選択し、セル内の値を削除する)
Columns("B:B").Select
Selection.ClearContents
'B列のセル幅を18にセット
Columns("B:B").ColumnWidth = 18
'行カウンタをの宣言
Dim gyo_ctr As Integer
'1 行目から5行目まで処理を繰り返す。
For gyo_ctr = 1 To 5
'数字でなければ、B列に"数字を入力して下さい"を設定する。
If False = IsNumeric(Trim( _
Workbooks("book1.xls").Worksheets("sheet1").Cells(gyo_ctr, 1))) Then
Workbooks("book1.xls").Worksheets("sheet1").Cells(gyo_ctr, 2) = _
"数字を入力して下さい"
End If
Next
End Sub
上記がエラーチェックのソースコードです。
最初に行う処理は、B列に入力されている値の削除と
B列の幅を18に設定する事です。
B列に入力されている値を削除することで、
過去に行ったエラーチェック処理のエラーメッセージを
削除できます。
B列の幅を18に設定する事で、エラーメッセージを
表示するのに十分な幅となります。
これらの処理はマクロの記録時に手作業を行えば、
自動生成されます。
次にエラーをチェックする処理ですが、
今回の処理は1行目から5行目まで繰り返します。
第7回で使用したDo Until〜Loopを
使うこともできますが、
より自然なFor〜nextを使います。
For gyo_ctr = 1 To 5
(中略)
Next
上記の文は、For文とNext文の間の
処理を5回繰り返しますが、
その際、gyo_ctr の値は
まず1を設定し、処理を繰り返すごとに
1加算されます。
For文の中にはIf文が1つあります。
セルの値をTrim関数で余分なスペースを削除し、
その値をIsNumeric関数に渡しています。
IsNumeric関数は渡された値が数字か判断し、
数字ならTrue、数字でないならFalseを返します。
この時点で、
IsNumeric(Trim( _
Workbooks("book1.xls").Worksheets("sheet1").Cells(gyo_ctr, 1)))
はTrueかFalseになり、その後、If文の判定が行われます。
IsNumeric関数がFalseを返していた場合のみ、
B列にエラーメッセージが設定されます。
ではまた・・・
2007年12月15日
この記事へのコメント
こういうブログを探していました これからも見ますのでよろしくお願いします 応援しますね
Posted by 佐賀たろう at 2007年12月15日 16:09
コメントを書く
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/72910723
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
http://blog.seesaa.jp/tb/72910723
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック


