電子書籍の厳選無料作品が豊富!

お世話になります。

一昨日からエクセルのVBAをやりはじめたのですが、
表題のエラーが回避できなくて困っております。

下記のコードの

Sub 繰越判定(cellno1 As Long, cellno2 As Long, cellno3 As Long, kamoku As String, bunrui As String, karikatakamoku As String, kasikatakamoku As String, tekiyou As String, kurikosi As Long)
の行が黄色になり、そこから17行下の

Call 当期(cellno1, cellno2, cellno3, kamoku, bunrui, karikatakamoku, kasikatakamoku, tekiyou, kurikosi)
のtekiyouの部分が青く変わります。

お分かりになる方がいらっしゃいましたら
お助けください。

以下コードです。


Sub 総勘定元帳() '開始行の設定

Dim cellno1 As Long '総勘定元帳の開始行
Dim cellno2 As Long 'マスタの検索行
Dim cellno3 As Long 'データの検索開始行
Dim kamoku As String 'マスタの科目
Dim bunrui As String 'マスタの(科目の)分類
Dim karikatakamoku As String
Dim kasikatakamoku As String
Dim tekiyou As String
Dim kurikosi As Long

cellno1 = 5
kurikosi = 0
kamoku = Sheets("マスタ").Range("B3")
bunrui = Sheets("マスタ").Range("C3")

Call 繰越判定(cellno1, cellno2, cellno3, kamoku, bunrui, karikatakamoku, kasikatakamoku, tekiyou, kurikosi)
End Sub

Sub 繰越判定(cellno1 As Long, cellno2 As Long, cellno3 As Long, kamoku As String, bunrui As String, karikatakamoku As String, kasikatakamoku As String, tekiyou As String, kurikosi As Long)

cellno2 = 3 'マスタの開始行数セット
cellno3 = 5 'データの開始行数セット
kamoku = Sheets("マスタ").Range("B" & cellno2)
karikatakamoku = Sheets("データ").Range("F" & cellno3)
tekiyou = Sheets("データ").Range("G" & cellno3)
kasikatakamoku = Sheets("データ").Range("H" & cellno3)

'MsgBox kamoku
'MsgBox karikatakamoku
'MsgBox tekiyou
'MsgBox kasikatakamoku

If kurikosi = 0 Then '前期繰越か当期かの判定
Call 繰越(cellno1, cellno2, cellno3, kamoku, bunrui, karikatakamoku, kasikatakamoku, tekiyou, kurikosi)
Else
Call 当期(cellno1, cellno2, cellno3, kamoku, bunrui, karikatakamoku, kasikatakamoku, tekiyou, kurikosi)
End If
End Sub
Sub 繰越(cellno1 As Long, cellno2 As Long, cellno3 As Long, kamoku As String, bunrui As String, karikatakamoku As String, kasikatakamoku As String, tekiyou As String, kurikosi As Long)

Range("a1") = kamoku '科目タイトル出力
Range("C" & cellno1) = "前期繰越"
If bunrui = "資産" Or bunrui = "資産2" Or bunrui = "収益" Then '科目分類の判定
Set マスタ = Sheets("決算")
Set 範囲 = マスタ.Range("A68:B90")
Range("D" & cellno1) = Application.WorksheetFunction.VLookup(bunrui, 範囲, 2)
End If

Call 当期(cellno1, cellno2, cellno3, kamoku, bunrui, karikatakamoku, kasikatakamoku, tekiyou, kurikosi)

End Sub
Sub 当期(cellno1 As Long, cellno2 As Long, cellno3 As Long, kamoku As String, karikatakamoku As String, kasikatakamoku As String, tekiyou As String, kurikosi As Long)

Do Until cellno3 = 30
If kurikosi = 0 Then
Select Case kamoku
Case karikatakamoku
MsgBox karikatakamoku
cellno3 = cellno3 + 1
karikatakamoku = Sheets("データ").Range("F" & cellno3)
karikatakamoku = Sheets("データ").Range("F" & cellno3)

Case kasikatakamoku
MsgBox kasikatakamoku
cellno3 = cellno3 + 1
kasikatakamoku = Sheets("データ").Range("H" & cellno3)
karikatakamoku = Sheets("データ").Range("F" & cellno3)

Case Else
cellno3 = cellno3 + 1
karikatakamoku = Sheets("データ").Range("F" & cellno3)
kasikatakamoku = Sheets("データ").Range("H" & cellno3)
MsgBox cellno3
End Select
Loop
End Sub

A 回答 (1件)

Sub 当期(cellno1 As Long, cellno2 As Long, cellno3 As Long, kamoku As String, karikatakamoku As String, kasikatakamoku As String, tekiyou As String, kurikosi As Long)



の引数が、足りていません

後、このサブのend ifが一つ足りません。
    • good
    • 0
この回答へのお礼

素早いご回答有難う御座いました。
やっと先へ進めます^^
またend ifが抜けているとのご指摘、
重ねて有難う御座いました。
大変助かりました><;

お礼日時:2014/01/02 13:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!