質問: ans End Sub 以下button16まで省略 End Class ### 試したこと returnを最後ではなく、各if内に記入 ### 補足情報(言語/FW/ツール等のバージョンなど) visual studio2013,windowsフォームアプリケーションにて作業しています。
回答: number()関数ですが ``` If mybutton(x) = 0 Then y = 0 Return y ElseIf x - 1 > 0 Then ......(1) If mybutton(x - 1) = 0 Then y = x - 1 Return y End If ElseIf (x + 1) < 17 Then : : ``` このif文で、xが2以上の場合、すべて(1)の条件にあてはまるため、他の分岐は通りません。 またそのとき、mybutton(x - 1) の値が0以外の場合、そこで関数の処理を抜けてしまい関数は戻り値として0を返すことになります(返す値を設定していないため)。「すべてのコードパスで値を返していません」という警告が表示されるのはそのためです。 おそらくやりたかったことは ``` If mybutton(x) = 0 Then y = 0 Return y End If If x - 1 > 0 Then '(1) If mybutton(x - 1) = 0 Then y = x - 1 Return y End If End If If (x + 1) < 17 Then : : ``` こういうことだと思います。それで、最後にどの条件にも当てはまらない場合 ``` : : If (x + 4) < 17 Then If mybutton(x + 4) = 0 Then y = x + 4 Return y End If End If y = 17 Return y ``` としてやれば、最後に17を返すことができます。