前回、前々回とエラーチェックについて説明しました。
今回は重複チェックを行います。
たとえばメールアドレスの設定時、
正しく入力しても既に使われてしまっている場合、
設定できません。
今回は入力した文字列が既に登録済みか
チェックするマクロを作成します。
[初期設定]
ファイル名: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列のデータを書き換えて、
マクロを実行してみて下さい。
マクロのソースコードについては次回説明します。
ではまた・・・
2007年12月23日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/74232005
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
http://blog.seesaa.jp/tb/74232005
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック


