2007年12月23日

第18回重複エラーチェック

前回、前々回とエラーチェックについて説明しました。
今回は重複チェックを行います。

たとえばメールアドレスの設定時、
正しく入力しても既に使われてしまっている場合、
設定できません。

今回は入力した文字列が既に登録済みか
チェックするマクロを作成します。

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

1行F列:あああ
2行F列:いいい
3行F列:ううう
4行F列:えええ
5行F列:おおお

[マクロの処理]
まずは、1行A列が入力されているかチェックする。
入力されていない場合、メッセージボックスで、
1行1列が未入力です
と表示し、マクロを終了する。

1行A列が入力されている場合、
F列に同じ文字列が存在するかチェックする。

F列に同じ文字列が存在する場合、
メッセージボックスで、既に登録済みです
と表示する。
F列に同じ文字列が存在しない場合、
メッセージボックスで、登録可能です
と表示する。

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

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2007/12/23 ユーザー名 :
'

'重複チェックする文字列を格納する
Dim chk_word As String
chk_word = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1))

'1行1列が未入力またはブランクの場合、エラーメッセージを出力、処理終了
If "" = chk_word Then
MsgBox "1行1列が未入力です", vbOKOnly, "エラーメッセージ"
Exit Sub
End If

'F列検索用ループカウンタ
Dim ctr As Long
ctr = 1

'F列を1行目からデータが無くなるまで検索
Do Until "" = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(ctr, 6))
'1行1列と同じデータがF列にあったらエラーメッセージを出力、処理終了
If chk_word = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(ctr, 6)) Then
MsgBox "既に登録済みです", vbOKOnly, "エラーメッセージ"
Exit Sub
End If
ctr = ctr + 1
Loop

MsgBox "登録可能です", vbOKOnly, "インフォメーション"

End Sub

マクロを実行すると1行1列の"あああ"が
既に1行F列に存在する為、
既に登録済みです
とメッセージが出力されます。

1行1列やF列のデータを書き換えて、
マクロを実行してみて下さい。

マクロのソースコードについては次回説明します。

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

メールアドレス:

ホームページアドレス:

コメント:

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


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

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

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