- Remove From My Forums
-
Question
-
Hi,
I have a form that I have been using a monthview for the calendar. We are moving to Office 2016 and it appears this is no longer an option. Has anyone found a solution for this?
thanks
All replies
-
I have a form that I have been using a monthview for the calendar. We are moving to Office 2016 and it appears this is no longer an option.
Which software do you use a «monthview» for the calendar?
Is it Microsoft Word, its version is older than 2016?-
Edited by
Sunday, October 23, 2016 10:40 PM
-
Edited by
-
I’m afraid Office 2016 does not have an adequate controls we want.
With Office 2013 and 2010, we can add «Date and Time Picker Control» in User Form.
But we can NOT with Office 2016.I’ve tried to use «Outlook Date Control» with Word/Excel 2016, in vain.
An error occurs in Run time. It says «Interface not supported» (originally in Japanese).[note]
In order to add controls,
1. on Menu in VBE screen, select [Tools] > [Additional Controls]
2. select
a) in case of Office 2010: [Microsoft Date and Time Picker Control…]
b) in case of Office 2016: [Microsoft Outlook Date Control]
Regards,
Ashidacchi -
Hi JJB Consulting,
you can try to use Microsoft Date Time Picker Control from Additional Controls option in toolbox.
I try to test this Control in Word 2016 and it is working correctly. check the output mentioned below.
Demo Example Code:
Private Sub CommandButton1_Click() Label1.Caption = DTPicker1.Value End Sub
Regards
Deepak
MSDN Community Support
Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
MSDN Support, feel free to contact MSDNFSF@microsoft.com. -
Hi Deepak Panchal10,
Which version and build of Office have you used?
I suppose you’re using older than Office 2016, such as 2013, 2010.I could not find «Microsoft Date and Time Picker Control 6.0» in Office 2016.
I’m using Office Pro.Plus 2016:
Version 1609 (Build 7369.2038)
Office 2010: Microsoft Date and Time Picker Control 6.0 can be seen.
-
Edited by
Ashidacchi
Monday, October 24, 2016 3:09 AM
-
Edited by
-
Hi Ashidacchi,
below is the version and build information that you had asked.
It is using MS Office 2016.
Regards
Deepak
MSDN Community Support
Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
MSDN Support, feel free to contact MSDNFSF@microsoft.com. -
Hi Deepak Panchal10,
Thank you for information.
Your screenshot shows «Office 365», instead of «Office 2016».If you’re using «Office 2016», which package did you use as an installer, ClickOnce or MSI?
# I installed Office 2016 via ClickOnce.
-
Edited by
Ashidacchi
Tuesday, October 25, 2016 2:35 AM
-
Edited by
-
Hi Ashidacchi,
we have subscription of Office 365 on Office 2016.
I don’t know by which way they installed because it’s not our responsibility to install these products.
it all handles by other It Team who look after and take care about this.
All I can say that it is Office 2016. you can check the information mentioned in the picture.
Regards
Deepak
MSDN Community Support
Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
MSDN Support, feel free to contact MSDNFSF@microsoft.com. -
Hi Deepak Panchal10,
Thank you for information again.
May I ask you to try to update your Office?
My Office 2016 is build 7369.2037 and yours 7369,2017.I’ve heard a several troubles in the latest build of Office 2016, expecially Excel 2016.
-
Hi Ashidachhi,
currently I have to check and test many codes on multiple Ms Office Applications.
so I am unable to update the MS Office currently.
I can try for that after work.
Regards
Deepak
MSDN Community Support
Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
MSDN Support, feel free to contact MSDNFSF@microsoft.com. -
Hi Deepak Panchel10,
Thanks a lot.
I hope you will be able to update your MS Office 2016 and to reproduce the issue of JJB consulting and me.Hi JJB consulting,
How is your issue? Have you found any resolution?
I would like to see your «Additional Controls» screen.
Could you insert a screenshot? or share it via cloud storage such as OneDrive, DropBox?Regards,
Ashidacchi-
Edited by
Ashidacchi
Tuesday, October 25, 2016 4:27 AM
-
Edited by
-
Hi Ashidachhi,
I update my MS Office 2016 with latest available updates.
you can see the new version in the picture mentioned below.
and I find that Microsoft Date and Time Picker is still there and I can use it.
maybe there is some issue with your MS Office and I hope that op also have this control in his MS Office Application and can able to use it to fulfill his requirement.
Regards
Deepak
MSDN Community Support
Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
MSDN Support, feel free to contact MSDNFSF@microsoft.com. -
Hi Deepak,
Thank you for infomation.
According to your description, there exist some differences between you and me.
1. You have subscription of Office 365 and use it.
(I have that of MSDN. So I suppose I could use Office 365, but I have not used it. I’ll try to use it.)2. The version of Office 2016/365:
yours: 1610 (Build 7466.2022)
mine: 1609 (Build 7369.2038)My Office 2016 cannot be updated further, i.e. it’s the latest in my case.
3. My Office 2016 is Japanese version originally. And I’ve added the Language Pack of English.
Regards,
Ashidacchi-
Edited by
Ashidacchi
Thursday, October 27, 2016 3:30 AM
-
Edited by
-
Hi Ashidachhi,
Note. If the Microsoft Date Piker control is not available in the
More Controls list, it’s most likely because of the following reasons:- You are using the 64 bit version of Office. Regrettably, there is no official date picker control for
Office64-bit. The only solution is using a third-party calendar for Excel.
- The calendar control (mscomct2.ocx) is not available or is not registered on your machine. To fix this, please follow these instructions: How to register the calendar control.
The Date and Time Picker is part of a library of tools with the catchy title of
MSCOMCT2.OCX.if you are using the Office 2016 32 bit version and Microsoft Date time Picker is not available then you can download the MSCOMCT2.OCX from the link mentioned below.
Download MSCOMCT2.OCX
please visit the link mentioned below to view the steps to install above mentioned library.
Installing the Date and Time Picker Control for VBA
it looks like you are using Office 2016 64 bit version.
-> if you are using 64 bit version then you can try to use third party Calendar control. so many Calendar controls are available on the internet. you can try to find.
Regards
Deepak
MSDN Community Support
Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
MSDN Support, feel free to contact MSDNFSF@microsoft.com.-
Proposed as answer by
Ashidacchi
Friday, October 28, 2016 1:54 AM
- You are using the 64 bit version of Office. Regrettably, there is no official date picker control for
-
Hi Deepak and JJB consulting,
Deepak, I appreciate your spending much time.
I’ve got it. I could use Date and Time Picker control.my environment:
Windows 10 [64-bit]
Office 2016 [32-bit]
I did this:
1. download «MSCOMCT2.OCX»
2. copy it to «C:%windows%SysWOW64» folder
3. run cmd.exe
3.1. change current directory to «C:%windows%SysWOW64»
3.2. type «regsvr32 mscomct2.ocx» and [Enter]
4. reboot WindowsI hope JJB consulting will do like me and will be able to use Date and Time Picker control, according to his/her environment[*1].
[*1]
If using 64-bit version of Windows, do what I did.
If using 32-bit version of Windows, do below.
1. download «MSCOMCT2.OCX»
2. copy it to «C:%windows%SysWOW64» folder
3. run cmd.exe
3.1. change current directory to «C:%windows%SysWOW64»
3.2. type «regsvr32 mscomct2.ocx» and [Enter]
4. reboot WindowsBest regards,
Ashidacchi -
Hi
Ashidacchi,Glad to know that you are now able to use Microsoft Date Time Picker Control in Office 2016.
Regards
Deepak
MSDN Community Support
Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
MSDN Support, feel free to contact MSDNFSF@microsoft.com.
Вам когда-нибудь хотелось, чтобы в Вашем приложении Excel или в любом другом MS Office приложении можно было выбирать дату из календаря при вставке ее, например, в ячейку или на форму, а не вводить вручную. Такая возможность есть!
Я в своих приложениях везде использую такой календарь. Большое спасибо автору, который создал этот календарь. Код в некоторых местах я переписал, чтобы он был адаптирован под удобное использование во многих проектах. Можете скачать архив с Excel-книгой этого календаря. API для работы с календарем очень простое (посмотрите код рабочего листа, где используется обработчик события нажатия на кнопку).
Для работы с календарем в Вашем Excel-приложении Вам всего лишь нужно импортировать один модуль, два класса и форму календаря в Вашу Excel-книгу и прописать в любом Вашем модуле несколько строк API-кода для работы с календарем, и все. Пользуйтесь на здоровье!
Ссылка на архив с книгой Excel и модули календаря: Скачать из Яндекс.Диска
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
Option Explicit '--------------------------------------------------------------------------------------- ' Решение : Календарь ' Дата и время : 14 января 2015 23:02 ' Автор : Night Ranger ' Яндекс.Деньги - 410012757639478 ' [email]Exingsteem@yandex.ru[/email] ' [url]https://www.cyberforum.ru/vba/[/url] ' Описание : Этот пример наглядно демонстрирует, как можно использовать календарь ' без подключения его к проекту, для этого нужна только форма ' совместимость версий любая ' ' В этой версии, теперь есть возможность запускать календарь от процедуры ' ShowCalendar, и указать там параметры SetDate и UnderRussianStandard ' Добавленна кнопка Ok, и форма помнит свою позицию '--------------------------------------------------------------------------------------- Const jstart = 8, istart = 8 'Стартовые точки Const gap = 5 'Разрыв Const twip = 18 'Прямоугольник Const cc = 6 'Размерность массива Dim tt(cc, cc) As MSForms.ToggleButton, lb As MSForms.Label Dim WithEvents fr As MSForms.Frame, WithEvents tb As MSForms.ToggleButton, WithEvents btn As MSForms.CommandButton Dim WithEvents cbMonth As MSForms.ComboBox, WithEvents cbYear As MSForms.ComboBox Dim WithEvents chbx As MSForms.CheckBox, WithEvents ok As MSForms.CommandButton Dim iNext&, cr As Boolean, i&, j&, jj&, v, a$(), tbClick As Boolean, URStandard As Boolean Public ThisDate As Date 'Переменная в которой храниться выбранная дата Private Sub ok_Click() 'Здесь могут быть дальнейшие инструкции после выбора даты 'Например дату в удобном формате можно поместить в активную ячейку '---------------------------------------------------------------- ' ' ' ActiveCell = TextResult '---------------------------------------------------------------- If chbx.Value Then Me.Hide End Sub Public Sub ShowCalendar( _ Optional ByVal SetDate As Date, _ Optional ByVal UnderRussianStandard As Boolean = 1) 'ShowCalendar -Процедура вызова с параметрами 'SetDate -Устанавливает возможность показа календаря c этой даты 'UnderRussianStandard -Устанавливает возможность исправлять: 1 январь на 1 января If CDbl(SetDate) Then cr = False ThisDate = SetDate cbMonth.ListIndex = Month(ThisDate) - 1 cbYear.Text = Year(ThisDate): cr = True: Update End If URStandard = UnderRussianStandard Me.Show End Sub Private Function TextResult$() TextResult = FormatDateTime(ThisDate, vbLongDate) If URStandard Then TextResult = Format(ThisDate, "[$-FC19]d mmmm yyyy г.") ' a = Split(TextResult) ' If Right$(a(1), 1) Like "[йЙьЬ]" Then ' Mid$(a(1), Len(a(1)), 1) = "я" ' ElseIf Right$(a(1), 1) Like "[Тт]" Then a(1) = a(1) & "а" ' End If ' TextResult = Join(a) End If End Function Private Sub UserForm_Initialize() Dim maxWidth&, Width1&, jNext& maxWidth = twip * (cc + 1) * 2: Width1 = maxWidth 2: iNext = istart: jNext = jstart ThisDate = Date: Me.Caption = "Календарь" Set fr = Me.Controls.Add("Forms.Frame.1", "fr") Set lb = Me.Controls.Add("Forms.Label.1", "lb") Set cbMonth = Me.Controls.Add("Forms.ComboBox.1", "cbMonth") Set cbYear = Me.Controls.Add("Forms.ComboBox.1", "cbYear") Set btn = Me.Controls.Add("Forms.CommandButton.1", "btn") Set ok = Me.Controls.Add("Forms.CommandButton.1", "ok") Set chbx = Me.Controls.Add("Forms.CheckBox.1", "chbx") With lb: .Move jstart, istart, Width1 .Font.Size = 15: .Font.Bold = 1 iNext = iNext + .Height + gap jNext = jNext + .Width + gap End With With cbMonth: .Move jNext, istart, (Width1 - gap * 2) 2, lb.Height: .Style = 2 For i = 1 To 12: .AddItem Format(DateSerial(0, i, 1), "mmmm"): Next jNext = jNext + .Width + gap End With With cbYear: .Move jNext, istart, (Width1 - gap * 2) 2, lb.Height: .Style = 2 For i = 1899 To Year(ThisDate) + 100 .AddItem CStr(i) Next End With iNext = lb.Top + lb.Height + gap With fr: .Move jstart, iNext, maxWidth, twip * (cc + 1) .Enabled = 0 .SpecialEffect = 0 End With For i = 0 To cc: For j = 0 To cc Set tt(j, i) = fr.Controls.Add("Forms.ToggleButton.1", "tt" & i & j) With tt(j, i): .Move j * twip * 2, i * twip, twip * 2, twip: .Locked = i = 0 .ForeColor = IIf(j >= 5, vbRed, vbBlue) .BackColor = IIf(i, vbButtonFace, vbScrollBars) End With: Next j, i jNext = jstart With ok: .Move jNext, iNext + fr.Height + gap, lb.Width, lb.Height: .Caption = "Ok" .AutoSize = 1: jNext = jNext + .Width + gap End With With btn: .Move jNext, iNext + fr.Height + gap, lb.Width, lb.Height: .Caption = "Сегодня" .AutoSize = 1: jNext = jNext + .Width + gap End With With chbx: .Move jNext, btn.Top, (jstart + maxWidth) - jNext .Caption = "Скрываться после выбора или Ok" .Value = GetSetting("Ms Office", "Calendar", "chbx", chbx.Value) End With Call btn_Click: Filling: lbUpdate With Me .Height = btn.Top + twip * 3 .Width = jstart + maxWidth + twip If Application.Left > -100 Then .StartUpPosition = 0 .Left = GetSetting("Ms Office", "Calendar", "Left", .Left) .Top = GetSetting("Ms Office", "Calendar", "Top", .Top) If .Left <= 0 Or .Left > (Application.Left + Application.Width - 100) Or _ .Top <= 0 Or .Top > (Application.Top + Application.Height - 100) Then 'Если сохраненная ранее позиция вышла за предел экрана .StartUpPosition = 2 End If End If End With End Sub Private Sub lbUpdate() If cr = False Then Exit Sub lb.Caption = Format(ThisDate, "mmmm yyyy") If Split(lb.Caption)(0) <> cbMonth.Text Then ThisDate = DateSerial(Year(ThisDate), cbMonth.ListIndex + 2, 0) lb.Caption = Format(ThisDate, "mmmm yyyy") End If End Sub Private Sub btn_Click() cr = False ThisDate = Date cbMonth.ListIndex = Month(ThisDate) - 1 cbYear.Text = Year(ThisDate): cr = True: Update End Sub Private Sub cbMonth_Click() If cr = False Then Exit Sub ThisDate = DateSerial(Year(ThisDate), cbMonth.ListIndex + 1, Day(ThisDate)) Update End Sub Private Sub cbYear_Click() If cr = False Then Exit Sub ThisDate = DateSerial(cbYear.Text, Month(ThisDate), Day(ThisDate)): Update End Sub Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) On Error Resume Next: Err.Clear: Set tb = tt((X - jstart) twip 2, (Y - iNext) twip) If Err = 0 Then With tb If .Enabled And .Locked = False Then For i = 1 To cc: For j = 0 To cc: With tt(j, i) If (.Name = tb.Name) Then ThisDate = DateSerial(cbYear.Text, cbMonth.ListIndex + 1, .Caption) .Value = 1: tbClick = 1: tb_Click: tbClick = 0 'Выбор произведен ! Else: .Value = 0 End If End With: Next j, i: End If: End With: End If End Sub Private Sub chbx_Click() If cr = False Then Exit Sub SaveSetting "Ms Office", "Calendar", "chbx", chbx.Value End Sub Sub Filling() For j = 0 To cc 'Понедельники вторники даты и тд With tt(j, 0): .Caption = WeekdayName(j + 1, 1, vbMonday): .Font.Bold = 1: End With Next: j = 0 While Weekday(DateSerial(Year(ThisDate), Month(ThisDate), j)) <> 1: j = j - 1: Wend: jj = j For i = 1 To cc: For j = 0 To cc: v = DateSerial(Year(ThisDate), Month(ThisDate), jj) + 1 With tt(j, i): .Caption = Day(v): .Enabled = Month(v) = Month(ThisDate) .Value = .Enabled And .Caption = Day(ThisDate) End With: jj = jj + 1: Next j, i End Sub Private Sub Update(): Call lbUpdate: Filling: End Sub Private Sub tb_Click(): If tbClick = False Then Exit Sub Else ok_Click End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) With Me 'Перед закрытием запомнить позицию SaveSetting "Ms Office", "Calendar", "Left", .Left SaveSetting "Ms Office", "Calendar", "Top", .Top End With End Sub |
Перечислим
основные методы элемента управления
Calendar (табл. 15).
Таблица
15
Методы
Calendar
В
качестве примера использования календаря
приведем следующую процедуру, которая
считывает из календаря выбранную дату
и вводит ее в ячейку рабочего листа:
Private
Sub Calendar1_Click()
Cells(1,
1).Value = Calendar1.Value
End
Sub
Часть
II
Программирование
на VBA в Word
Глава
5
Вывод
текста в документ Word
5.1.
Основные объекты Word
Объект
Word.Application
Дополнительно
ко всем возможностям программирования
на VBA, рассмотренным в части I, можно
добавить возможности вывода всех
результатов вычислений, преобразований,
сообщений в документ Word, с возможностью
дальнейшего отправления на печать. Для
этого необходимо рассмотреть основные
объекты приложения Word.
Ключевым
в объектной модели Word является объект
Application, так как он содержит все остальные
объекты Word. Его элементами на разных
уровнях иерархии являются около 180
объектов. Сам корневой объект
ApplicatioNимеет более сотни элементов:
свойств, методов и событий.
Свойства объекта Word.Application
Свойства
любого объекта делятся на две группы:
свойства-участники (объекты) и терминальные
свойства (обычные переменные VBA).
Единую
систему организации панелей меню и
инструментальных кнопок обеспечивает
объект CommandBars, справок – Assistant, поиска
– FileSearch.
Центральными
объектами Word являются коллекции Documents
и Templates, точнее составляющие их элементы,
сам документ и шаблоны.
Рассмотрим
объекты второго плана.
Объект
AutoCorrect
поддерживает
работу по автоматической коррекции
набираемых текстов. Его возможности
эквивалентны команде Автозамена
меню
Сервис.
Объект
Browser
позволяет
перемещать точку вставки, указывающую
на объекты в документе.
Коллекция
объектов Dialogs
представляет
совокупность диалоговых окон, встроенных
в Word. Добавлять новые или удалять элементы
этой коллекции программным путем нельзя.
Но соответствующие окна можно открыть
и показать на экране дисплея и тем самым
организовать диалог пользователем по
теме, заданной соответствующим окном.
Три
объекта, связанные с проверкой грамматики
и орфографии: Languages,
Dictionaries, SpellingSuggestions, –
позволяют установить нужный язык,
выбрать словарь, в том числе пользовательские
словари, а также работать со списком
слов, предлагаемых для исправления при
обнаружении ошибки правописания. Команды
Правописание и Язык меню Сервис
предоставляют аналогичные, функциональные
возможности при работе с документом
вручную.
С
помощью объекта Options можно программным
путем установить различные опции
приложения и документа аналогично тому,
как если бы вы выбрали команду Параметры
в меню Сервис.
Работа с документами и класс Document
Когда
открывается приложение, создается
коллекция документов Documents, содержащая
все открытые документы. В начальный
момент коллекция содержит минимум один
новый или ранее существовавший документ.
Новый документ добавляется методом
Add, а уже существующий – методом
OpeNобъекта Documents. Чтобы добраться до
нужного документа, достаточно указать
его индекс – имя файла, хранящего
документ, или его порядковый номер в
коллекции. Для той же цели можно
использовать и метод Item, но обычно он
опускается. Метод Save позволяет сохранить
документ, а метод Close, сохраняя документ
в файле, закрывает его и удаляет из
коллекции.
Глобальное
свойство Dialogs возвращает коллекцию
диалоговых окон. Константа
wdDialogFileOpeNзадает конкретное диалоговое
окно – объект класса Dialog.
Классы,
задающие структуризацию текста документа
Текст
– это основа большинства документов.
Его можно структурировать, оперируя
различными единицами при решении тех
или иных задач преобразования. Минимальной
единицей текста обычно является символ.
Кроме этого, существуют следующие
единицы: слова, предложения, абзацы, а
также более крупные образования:
страницы, параграфы, главы.
Классы
Characters, Words, Statements, Paragraphs, Sections позволяют
работать с последовательностями
(коллекциями) символов, слов, предложений,
абзацев и разделов. Самой крупной
единицей после абзаца выступает раздел.
Элементом коллекций Characters, Words и Statements
является объект класса Range. Объект Range
позволяет работать как с одним элементом,
так и с произвольной последовательностью
элементов. Документы, поддокументы,
абзацы, разделы – все они имеют метод
или свойство Range, возвращающее интервал,
связанный с объектом. Поэтому работа с
текстом так или иначе ведется через
методы и свойства объекта Range.
События
объекта Document
Объект
Document может реагировать на три события,
возникающие в результате действий
пользователя.
Таблица
16
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #