2011-10-06 12 views
0

Excelワークフローを自動化するためにVBAに簡単に入り込んでいます。私はワークシートを作成し、それを返す関数を持っています。VBA関数の戻り値を設定する際にエラーが発生する

Dim ws As Worksheet 
Dim wb As Workbook 

Set wb = Application.ActiveWorkbook 
Set ws = makeNewWorksheet(wb) 

機能は次のとおりです:

Function makeNewWorksheet(wb) As Worksheet 
    Dim wsName As String 
    Dim ws As Worksheet 
    Dim newWs As Worksheet 

    wsName = "Bounced " & Format(Now, "dd-mm-yyyy") 
    For Each ws In wb.Worksheets 
     If ws.Name = wsName Then 
      Set newWs = ws 
      Exit For 
     End If 
    Next 
    If newWs Is Nothing Then 
     Set ws = wb.Sheets.Add 
     With ws 
      .Name = wsName 
      .Move after:=Sheets(Sheets.Count) 
     End With 
    End If 
    makeNewWorksheet = ws 
End Function 

私は最後の行(makeNewWorksheet = ws)上の関数の戻り値を代入しようとすると、私はエラーを取得:

次のように私はそれを呼び出します

この状況では、私が見つけることができるオンラインドキュメントはありません。すべてが定義され、ws変数に値があります。

編集:Re。受け入れられた答えは以下の通りです。 Here'sキーワードの説明はsetです。

答えて

3

この:

makeNewWorksheet = ws 

は次のようになります。

set makeNewWorksheet = ws 
+0

おかげで、私がどんなBASICバリアントを使用していたので、長い時間がかかりました。私はちょうど 'set'キーワードを調べて上記の関連する質問にリンクしました。 – edoloughlin