このコードの下部にある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
別のプログラムからOutlookを自動化する方法 の記事では、Outlookの自動化に必要なすべての手順について説明しています。状態:
事前バインディングを使用するには、まず利用可能なOutlookオブジェクトライブラリを参照する必要があります。 Visual Basic(VB)またはVisual Basic for Applicationsからこれを行うには、次の手順に従います:
スクリプトVBA ExcelでOutlookを使用し、次を選択すると、同じ問題が発生しました。
[ツール]> [参照設定]> [Microsoft Outlook 15.0 Object Library]の前のチェックボックスをオンにします。