こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル マクロ

よろしくお願いします。

エクセルのテキストに従って勉強していて
コード抜けがないことも確認したのですが
「ifに対するend ifがありません」と表示されます。
デバックを開いてもブレークポイントが表示されていないので
よくわかりません。

どこが問題かご享受ください。

Private Sub CommandOK_Click()
Dim Row As Integer
Row = Range("D1").Value + 3
If 会員登録画面.氏名カナ.Value = Empty Then
MsgBox ("氏名カナが空欄です")
Exit Sub
End If
If 会員登録画面.氏名漢字.Value = Empty Then
MsgBox ("氏名漢字が空欄です")
Exit Sub
If Not IsDate(会員登録画面.年.Value & _
"/" & 会員登録画面.月.Value & _
"/" & 会員登録画面.日.Value) Then
MsgBox ("生年月日の形式が正しくありません")
Exit Sub
End If
Cells(Row, 1).Value = 会員登録画面.会員番号.Value
Cells(Row, 2).Value = 会員登録画面.氏名カナ.Value
Cells(Row, 3).Value = 会員登録画面.氏名漢字.Value
If 会員登録画面.男.Value = True Then
Cells(Row, 4).Value = "男"
Else
Cells(Row, 4).Value = "女"
End If
Cells(Row, 5).Value = DateValue(会員登録画面.年.Value & _
"/" & 会員登録画面.月.Value & _
"/" & 会員登録画面.日.Value)
Cells(Row, 6).Value = 会員登録画面.都道府県.Value
Cells(Row, 7).Value = 会員登録画面.電話番号.Value
If 会員登録画面.スポーツ観戦.Value = True Then
Cells(Row, 8).Value = "○"
End If
If 会員登録画面.映画鑑賞.Value = True Then
Cells(Row, 9).Value = "○"
End If
If 会員登録画面.読書.Value = True Then
Cells(Row, 10).Value = "○"
End If
If 会員登録画面.釣り.Value = True Then
Cells(Row, 11).Value = "○"
End If
If 会員登録画面.ドライブ.Value = True Then
Cells(Row, 12).Value = "○"
End If
If 会員登録画面.旅行.Value = True Then
Cells(Row, 13).Value = "○"
End If
Range("D1").Value = Range("D1").Value + 1
Call 画面初期化
End Sub

投稿日時 - 2009-07-17 18:26:09

QNo.5133364

すぐに回答ほしいです

質問者が選んだベストアンサー

No.3ですが、ソースのコーディングスタイル(書式)にインデントを使えば、IfやForブロックなどの範囲が見易くなり、ミス防止にも有効です。

If ○○○ Then
****
:
End If
  ↓
If ○○○ Then
  *****
   :
End If
 

投稿日時 - 2009-07-17 19:20:41

ANo.4

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

Ifの数とEndIFの数がモジュール内であっていないでしょう。
>If 会員登録画面.氏名漢字.Value = Empty Then
MsgBox ("氏名漢字が空欄です")
Exit Sub
If Not IsDate(会員登録画面.年.Value & _
"/" & 会員登録画面.月.Value & _
"/" & 会員登録画面.日.Value) Then
MsgBox ("生年月日の形式が正しくありません")
Exit Sub
End If
辺りかな。
==
エラー指摘で
>ifに対するend ifがありません」と表示されます、と言うのが判っているのだから、
こんなのコートを多数貼り付けて、質問するようなことではない、基本的なことです。

投稿日時 - 2009-07-17 20:46:39

ANo.3

If 会員登録画面.氏名漢字.Value = Empty Then に対する End Ifが無いのでは。
 

投稿日時 - 2009-07-17 19:02:48

ANo.2

>If 会員登録画面.氏名漢字.Value = Empty Then
>MsgBox ("氏名漢字が空欄です")
>Exit Sub
*****[ここかな?]*****
>If Not IsDate(会員登録画面.年.Value & _

投稿日時 - 2009-07-17 19:01:32

ANo.1

>「ifに対するend ifがありません」と表示されます。

if と
end if
を数えてください。両者の数が合っていないから表示されたメッセージです。

どこでif を閉じるか確認すればわかるでしょう。

投稿日時 - 2009-07-17 19:00:58

あなたにオススメの質問