web-dev-qa-db-ja.com

コード実行時のユーザー定義型未定義エラーの取得

このコードの下部にあるFunction GetOutlookApp() As Outlook.Applicationで「ユーザー定義型が定義されていません」というエラーが表示される理由を誰もが知っていますか?

Sub CreateAppointments()

Dim cell As Excel.Range
Dim rng As Excel.Range
Dim wholeColumn As Excel.Range
Dim startingCell As Excel.Range
Dim oApp As Outlook.Application
Dim tsk As Outlook.TaskItem
Dim wkbk As Excel.Workbook
Dim wksht As Excel.Worksheet
Dim lastRow As Long
Dim arrData As Variant
Dim i As Long

'Outlookアプリを起動します

Set oApp = GetOutlookApp
If oApp Is Nothing Then
  MsgBox "Could not start Outlook.", vbInformation
  Exit Sub
End If

'ワークシートの範囲を一度に配列に入れます

Set wkbk = ActiveWorkbook
Set wksht = wkbk.ActiveSheet
Set wholeColumn = wksht.Range("B:B")
lastRow = wholeColumn.End(xlDown).Row - 2
Set startingCell = wksht.Range("B2")
Set rng = wksht.Range(startingCell, startingCell.Offset(lastRow, 1))
arrData = Application.Transpose(rng.Value)

'配列をループし、各レコードのタスクを作成します

For i = LBound(arrData, 2) To UBound(arrData, 2)
  Set tsk = oApp.CreateItem(olTaskItem)
  With tsk
    .DueDate = arrData(2, i)
    .Subject = arrData(1, i)
    .Save
  End With
Next I

End Sub

Function GetOutlookApp() As Outlook.Application
On Error Resume Next
Set GetOutlookApp = CreateObject("Outlook.Application")

End Function
6
Kim G

別のプログラムからOutlookを自動化する方法 の記事では、Outlookの自動化に必要なすべての手順について説明しています。状態:

事前バインディングを使用するには、まず利用可能なOutlookオブジェクトライブラリを参照する必要があります。 Visual Basic(VB)またはVisual Basic for Applicationsからこれを行うには、次の手順に従います:

  1. Visual Basic Editorで、[ツール]メニューの[参照設定]をクリックします。
  2. [Microsoft Outlook 15.0 Object Library]チェックボックスをオンにし、[OK]をクリックします。
12
Eugene Astafiev

スクリプトVBA ExcelでOutlookを使用し、次を選択すると、同じ問題が発生しました。

[ツール]> [参照設定]> [Microsoft Outlook 15.0 Object Library]の前のチェックボックスをオンにします。

1
D. Chirita