VBA Class () создает в Excel те же структуры классов объектов, что и в outlook. - PullRequest
0 голосов
/ 24 апреля 2018

чего я хочу добиться, так это создать тот же класс-конструктор, что и в Outlook.Означает: sFilename = item.Attachments.item (i). Имя_файла '"myTFile.txt"

Я написал код в Outlook.Я не могу изменить и протестировать во время работы Outlook, поэтому я пытаюсь написать код заранее в Excel, и я пытаюсь построить структуру класса так же, как в Outlook, что мне не нужно впоследствии изменять код, например:

sFileName = item.Attachments.item(i).Filename

Я пытался с помощью свойств Получить таким образом: Создание классов: clsMail с содержимым:

Property Get item() As clsItem
    Set item = New clsItem
End Property

clsItem с содержимым:

Property Get Sender() As String
  sFileName = "myFile.txt"
  Dim objFSO As Object: Set objFSO = CreateObject("Scripting.FileSystemObject")
  If objFSO.FileExists(sFileName) Then
    Dim objShell As Object, objFolder As Object, objFolderItem As Object
    Set objShell = CreateObject("Shell.Application"): Set objFolder = objShell.Namespace(sPathEDIportalLogs)
    Set objFolderItem = objFolder.ParseName("myFile.txt")
    Sender = Split(objFolder.GetDetailsOf(objFolderItem, 10), "\")(1)
  End If
End Property

Property Get ReceivedTime() As Date
    ReceivedTime = Date
End Property

Property Get Subject() As String
    Subject = "Subject Text"
End Property

Property Get Attachments() As clsAttachments
    Set Attachments = New clsAttachments
End Property

Пока все хорошо доitem.Attachments Но теперь я борюсь с остальными item(i).Filename Снова item и как массив.Я много пробовал, но не сделал.Кто может помочь.

Я бью из стека ошибка:

what I got so far with debugging

1 Ответ

0 голосов
/ 24 апреля 2018

Вы возвращаетесь. Бесконечно.

item (0) вызывает ваш геттер.
который получает доступ к элементу (0).
который звонит в ваш добытчик.
который получает доступ к элементу (0).

Вид несвязанного, но очень важного примечания: Доступ к геттеру НИКОГДА не должен ничего менять. Это ужасная практика кода. Он выстрелит вам в ногу больше, чем вы когда-либо могли себе представить.

Не делай этого ..:)

...