Дано: ячейка, содержащая некую ссылку и имеющая некое текстовое значение переменной длины. Иногда при слишком длинном значении оно обрезается справа и естественным выходом видится уменьшить в этой ячейке размер шрифта (используется шрифт с нефиксированным знакоместом, а размер ячейки фиксирован). Есть ли средства, позволяющие проанализировать, видно ли значение в ячейке полностью или частично? Другими словами, не мала ли ячейка для отображения данного значения при установленном для неё размере шрифта?
То есть, требуется программно отследить ситуации в строках 1 и 2 дабы привести в соответствие размер шрифта.
С вынужденной заменой винчестера вместо 32-разрядного MS Office установлен 64-разрядный. Попутно получена проблема с использованием макроса, который ранее работал как часы (в т.ч. и для обеспечения отсчёта времени в ячейке). В частности, Excel теперь категорически не приемлет следующие операторы:
Код
Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Public Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Public Declare Function gethostname Lib "WSOCK32.DLL" (ByVal szHost As String, ByVal dwHostLen As Long) As Long
Public Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHost As String) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Private Declare Function MultiByteToWideChar Lib "kernel32.dll" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function WideCharToMultiByte Lib "kernel32.dll" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As Long
Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Вопросы знатокам: 1. Каким образом надо обновить сей код, чтобы он работал в 64-разрядной версии? 2. Можно ли заставить макрос автоматически определять, в какой среде он работает? Или же для каждой версии Office нужна соответствующая версия кода?
С какого-то внезапного перепугу кнопка объединения ячеек в ленте вдруг стала недоступной (Excel 2010). Недоступен также и вариант с объединением ячеек через контекстное меню по ПКМ. С макросами работаю, но ни в одном из них нет изменений свойств стандартных кнопок форматирования.
Имеется ListBox, куда в процессе выполнения программы выводится некая информация. С некоторых пор ListBox и его строки перестали активироваться, что привело к невозможности прокрутки и выбора из него. При наведении на объект курсор не меняется - должен стать стрелкой, остаётся крестиком. В прежних версиях программы всё работает идеально. Внесённые в программный код изменения свойств объекта ничуть не касались. При сверке свойств двух листбоксов (из новой версии и из старой) наблюдается полная идентичность, при этом у обоих листоксов .Enabled=True, .Locked=False, .MousePointer=0-fmMousePointerDefault. ListBox.Activate тоже не помогает. Что ещё может влиять на доступность листбокса? Как принудительно заставить его быть доступным?
Доброго всем времени суток! Дано: Некий рабочий процесс, в ходе которого в рабочей книге отсчитывается время. При достижении определённого момента включается звуковая сигнализация и появляется окно сообщения. В это время юзер может отвлечься от процесса, например, читая новости в Интернете. Требуется: В дополнение к перечисленному ещё и вернуть юзера к управлению процессом, активизировав окно Excel с исполняемой рабочей книгой.