Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Excel | Название свернутого окна на панели задач (http://forum.oszone.net/showthread.php?t=164206)

alinusik 21-01-2010 14:13 1326014

Excel | Название свернутого окна на панели задач
 
Настроила отображение каждого документа в новом окне. Если открыто немного окон, то название открытого файла видно (Microsoft Excel-123.xlsm) Если же окон набирается достаточное кол-во, то уже сложно различать какой где документ открыт, т.к. названия обрезаются и видно лишь часть слова Microsoft. Можно ли как-то настроить Excel, чтобы название окна сразу начиналось с названия открытого документа?

Camill 25-01-2011 05:06 1596595

Та же проблема.

Pliomera 29-01-2011 00:41 1599557

alinusik, Camill, средствами Excel - невозможно. С использованием программирования и API - наверняка решаемо. Не проще ли расширить панель задач или не открывать много окон?
Если критично, что называется "до зарезу" - купите монитор на 45 дюймов :)

Camill 29-01-2011 15:24 1599845

На самом деле в 2007 экселе эта проблема решалась - при открытии второй книги эксель ставил в заголовке название файла вперед, а при ее закрытии забывал сменить обратно. Соответственно, спасал макрос:
Set wb = Workbooks.Add
wb.Activate
ActiveWindow.Close

В 2010 склероз вылечили, а я уже несколько файлов переделал под новые контролы, и переставлять обратно 2007 не хочется.

WinAPI - это мысль, попробую. Получится - отпишусь.

Час моего времени, потраченного на ковыряние WinAPI, к сожалению, значительно дешевле монитора на 45 дюймов.


UPD
Код:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
 
Private Const WM_SETTEXT = &HC

Private Sub Workbook_Open()
    УбратьПрефикс
End Sub

Sub УбратьПрефикс()
    Dim hwnd As Long
    Dim Заголовок as String
    Заголовок = ActiveWorkbook.Name
    hwnd = FindWindow(vbNullString, "Microsoft Excel - " & Заголовок)
    if hwnd > 0 then SendMessage hwnd, WM_SETTEXT, 0, ByVal Заголовок
    ' OnTime нужен, так как через некоторое время эксель сам меняет заголовок обратно
    Application.OnTime Now + TimeValue("00:00:10"), "УбратьПрефикс"
End Sub


v1va 24-11-2019 14:21 2897775

Накидал тут на Delphi софтину. Скачиваете, добавляете в автозагрузку. Софтина удаляет в названии программ "Microsoft Excel - "
https://drive.google.com/file/d/1kTp...ew?usp=sharing

Iska 25-11-2019 15:19 2897931

v1va, без исходного кода? Такое себе…


Время: 15:04.

Время: 15:04.
© OSzone.net 2001-