Как получить данные из календаря Outlook в Exel?

Программирование на Visual Basic for Applications
Ogo10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 08.08.2007 (Ср) 16:13

Как получить данные из календаря Outlook в Exel?

Сообщение Ogo10 » 24.08.2007 (Пт) 9:33

Необходимо получить в Exel события календаря Outlook.
Должна получиться таблица вида :

Тема : Дата начала : Дата завершения : Категория


Да, желательно за определенный промежуток - месяц.

Genyaa
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 17.10.2006 (Вт) 13:46

Сообщение Genyaa » 24.08.2007 (Пт) 14:07

Вот, у меня получилось так (OutLook был запущен... если нет, то нужно будет вместо GetObject делать CreateObject):

Код: Выделить всё
Sub getCalendar()
    Dim olApp As Object
    Dim myOlApp As Object, myNameSpace As Object, myCalendar As Object
    Set myOlApp = GetObject(, "Outlook.Application")
    Set myNameSpace = myOlApp.GetNamespace("MAPI")
    Set myCalendar = myNameSpace.GetDefaultFolder(9)
    i = 0
    For Each myC In myCalendar.Items
        i = i + 1
        With myC
            Cells(i, 1) = .Subject
            Cells(i, 2) = .Start
            Cells(i, 3) = .End
            Cells(i, 4) = .Categories
        End With
    Next myC
End Sub


Надеюсь, с тем, чтобы выборка была в необходимом промежутке времени, не будет проблем.
Всякое решение плодит новые проблемы.

Ogo10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 08.08.2007 (Ср) 16:13

Сообщение Ogo10 » 24.08.2007 (Пт) 15:40

Спасибо, очень выручил!

Вопрос в продолжение темы:
В таблице получаю дату в текстовом формате, как ее перевести в фомат даты Exel?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.08.2007 (Пт) 15:51

Genyaa

Для справки, если Excel не запущен, getobject его запустит сам :)

Ogo10

Посмотри в object browser в excel свойства объкта cell :)
I don't understand. Sorry.

Ogo10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 08.08.2007 (Ср) 16:13

Сообщение Ogo10 » 24.08.2007 (Пт) 16:18

RayShade писал(а):Genyaa
Для справки, если Excel не запущен, getobject его запустит сам :)


У меня GetObject не запустил Outlook, только CreateObject его запускает.

RayShade писал(а):Ogo10
Посмотри в object browser в excel свойства объкта cell :)


Простой формат ячейки в данном случае проблемы не решает, необходимо перевести значение в настоящие числа.

Genyaa
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 17.10.2006 (Вт) 13:46

Сообщение Genyaa » 24.08.2007 (Пт) 19:50

Странно, что у Вас Ексел принял эти значения в виде текста... У меня на листе (все ячейки формат Общий) все значения имеют тип Даты после отработки макроса. Даты с установленным временем (отличным от 00:00) в формате ДД/ММ/ГГГГ ЧЧ:ММ...

Но если это не так у Вас и Вы не можете это победить, то сделайте так:

Код: Выделить всё
            Cells(i, 2) = DateValue(.Start)
            Cells(i, 3) = DateValue(.End)


Правда значение установленного времени (если было отличным от 0:00) вероятно будет утеряно.
Всякое решение плодит новые проблемы.

Ogo10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 08.08.2007 (Ср) 16:13

Сообщение Ogo10 » 25.08.2007 (Сб) 11:30

Спасибо Genyaa!

С этим вроде бы разобрался.
Помогите разобраться с полученными данными.
Я уже всю голову сломал.

Небходимо из полученной нами таблицы вида:
Тема (Т) : Дата начала : Дата завершения : Категория (К)

Получить данные в таблицу вида:

_____ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9 _ 10 … 31 (дни месяца)

Т 1 _ К2____________________ К3___________
Т 2 ________ К1_К1_К1_К1____К2___________
Т 3 __________________К4_________________
Т 4 _______________К2______________К1____
.... ..................................................................
Т n ________К4________К2_К2_К2_К2________

При этом в левом столбце перечислить только уникальные значения тем, при том что их количество может быть неопределенно большим.

Genyaa
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 17.10.2006 (Вт) 13:46

Сообщение Genyaa » 25.08.2007 (Сб) 19:25

Постройте сводную таблицу (Меню-Данные-Сводная таблица)
Строки - тема
Столбцы - дата
Данные - количество по Категории

Получится почти то, что Вы хотите... только без значений категорий области данных...

Чтобы проставить категории нужно/можно организовать отдельную таблицу, которая бы брала бы данные строк и столбцов из сводной, а котегории проставлись бы из исходной таблици с помощью формул.
Всякое решение плодит новые проблемы.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList