• ベストアンサー

エクセル マクロ

よろしくお願いします。 エクセルのテキストに従って勉強していて コード抜けがないことも確認したのですが 「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

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

  • ベストアンサー
  • s-uzen
  • ベストアンサー率65% (2051/3118)
回答No.4

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

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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がありません」と表示されます、と言うのが判っているのだから、 こんなのコートを多数貼り付けて、質問するようなことではない、基本的なことです。

  • s-uzen
  • ベストアンサー率65% (2051/3118)
回答No.3

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

  • popuplt
  • ベストアンサー率38% (31/81)
回答No.2

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

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.1

>「ifに対するend ifがありません」と表示されます。 if と end if を数えてください。両者の数が合っていないから表示されたメッセージです。 どこでif を閉じるか確認すればわかるでしょう。

関連するQ&A

専門家に質問してみよう