nannde回答ポイント 60ptウォッチ 1

【Excel VBA】Function の中で死ぬことはしないのでしょうか?


Function 内でエラー発生した場合、メッセージを出して終了してほしいのですが、一般的にはどのように行っているのでしょうか?

''' 存在しないシート名ならわかりやすく死んでほしい
Public Function getWorksheetByName(name As String, book As Workbook) As Worksheet
On Error Resume Next
getWorksheetByName = book.Worksheets(name)

If getWorksheetByName Is Nothing Then
MsgBox "シート[" & name & "]が存在しません!"
die() ' そんな関数は無い。End Function では Sub に戻って継続してしまう
End If
End Function


死にたければ Sub で実装するのでしょうか?
Public Sub setWorksheetFor(ByRef ws As Worksheet, name As String, book As Workbook)
...
End Sub

Sub test()
Dim ws As Worksheet
setWorksheetFor ws, "あるシート", ThisWorkbook
...

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2009-12-05 23:20:15
終了日時
2009-12-06 00:36:58
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

VBA1347Excel3146関数2326

人気の質問

メニュー

PC版