Статьи

Як повернути меню в стилі Excel 2003 в версіях 2007 і старше

  1. Пошук по мітках
хитрощі »25 Лютий 2012 Дмитро 20856 переглядів

З приходом в наше життя нового Excel 2007 в неї також прийшли не тільки понад мільйон рядків, майже необмежену кількість умов умовного форматування і ще купа нових можливостей, але і новий стиль. Притому не просто новий, а зовсім перероблений, незнайомий, невпізнанний і заплутує. Хтось роками користувався 2003 Excel і настільки звик до його інтерфейсу, що новий стиль був сприйнятий не просто в штики - багато хто з цих людей досі користуються 2003 практично тільки через небажання переходити на новий стиль.
Тим, хто боїться перейти на новий інтерфейс тільки з цієї причини, а так само тим, кого мучить ностальгія по колишньому інтерфейсу, можу запропонувати нескладний код, який на вкладці "Надбудови" створює ряд меню, які повторюють старий добрий 2003.

Сам код:

Option Explicit '----------------------------------------------- ---------------------------------------- 'Procedure: MakeMenu2003' Purpose: Процедура створення меню в стилі Excel 2003 '--------------------------------------------- ------------------------------------------ Sub MakeMenu2003 () Dim arr, cbArr , cbName As String Dim cbMenu, cbStandart, cbFormat Dim lc As Long 'Видаляємо меню, якщо вони вже створені Call Del_Menu' створюємо масиви для створення меню 'імена cbArr = Array ( "Меню 2003", "Стандартна 2003", "Форматування 2003" ) 'панель меню cbMenu = Array ( "30002 | 10", "30003 | 10", "30004 | 10", "30005 | 10", "30006 | 10", "30007 | 10", "30011 | 10", "30009 | 10", "30022 | 10", "30177 | 10", "30010 | 10") 'стандартна панель (основні іконки) cbStandart = Array ( "2520 | 1", "23 | 1", "3 | 1 "," 9004 | 1 "," 3738 | 1 "," 2 521 | 1 "," 109 | 1 ", "2 | 1", "7343 | 1", "21 | 1", "19 | 1", "108 | 1", "128 | 6", "129 | 6", "9071 | 1", "1576 | 1 "," 226 | 13 "," 210 | 1 "," 211 | 1 "," 436 | 1 "," тисячі сімсот тридцять три | 4 "," 30253 | 10 "," 984 | 1 ") 'панель форматів cbFormat = Array ( "+1728 | 4", "один тисяча сімсот тридцять одна | 4", "113 | 1", "114 | 1", "115 | 1", "120 | 1", "122 | 1", "121 | 1" , "402 | 1", "1643 | 1", "396 | 1", "397 | 1", "398 | 1", "399 | 1", "3162 | 1", "3161 | 1") ' об'єднуємо в один масив для більш простого виклику arr = Array (cbMenu, cbStandart, cbFormat) For lc = LBound (cbArr) To UBound (cbArr) CreateMenu (cbArr (lc)), arr (lc) Next lc End Sub Function CreateMenu (cbName As String, arr) Dim vType, vID, lc As Long Dim asSp On Error Resume Next With Application.CommandBars.Add (cbName,,, True) .Controls For lc = LBound (arr) To UBound (arr) asSp = Split ( arr (lc), "|") .Add Type: = Val (asSp (1)), ID: = Val (asSp (0)) Next End With 'Робимо меню видимим Application.CommandBars (cbName) .Visible = True End Function '---------- -------------------------------------------------- --------------------------- 'Procedure: Del_Menu2003' Purpose: Процедура видалення раніше створеного меню Excel 2003 '-------- -------------------------------------------------- ----------------------------- Sub Del_Menu () On Error Resume Next Dim x For Each x In Array ( "Меню 2003", "Стандартна 2003", "Форматування 2003") Application.CommandBars (x) .Delete Next End Sub

Option Explicit '----------------------------------------------- ---------------------------------------- 'Procedure: MakeMenu2003' Purpose: Процедура створення меню в стилі Excel 2003 '--------------------------------------------- ------------------------------------------ Sub MakeMenu2003 () Dim arr, cbArr , cbName As String Dim cbMenu, cbStandart, cbFormat Dim lc As Long 'Видаляємо меню, якщо вони вже створені Call Del_Menu' створюємо масиви для створення меню 'імена cbArr = Array ( "Меню 2003", "Стандартна 2003", "Форматування 2003" ) 'панель меню cbMenu = Array ( "30002 | 10", "30003 | 10", "30004 | 10", "30005 | 10", "30006 | 10", "30007 | 10", "30011 | 10", "30009 | 10", "30022 | 10", "30177 | 10", "30010 | 10") 'стандартна панель (основні іконки) cbStandart = Array ( "2520 | 1", "23 | 1", "3 | 1 "," 9004 | 1 "," 3738 | 1 "," 2521 | 1 "," 109 | 1 "," 2 | 1 "," 7343 | 1 "," 21 | 1 " , "19 | 1", "108 | 1", "128 | 6", "129 | 6", "9071 | 1", "+1576 | 1", "226 | 13", "210 | 1", " 211 | 1 "," 436 | 1 "," 1733 | 4 "," 30253 | 10 "," 984 | 1 ") 'панель форматів cbFormat = Array (" 1728 | 4 "," 1731 | 4 "," 113 | 1 "," 114 | 1 "," 115 | 1 "," 120 | 1 "," 122 | 1 "," 121 | 1 "," 402 | 1 "," 1643 | 1 "," 396 | 1 "," 397 | 1 "," 398 | 1 "," 399 | 1 "," 3162 | 1 "," 3161 | 1 ") 'об'єднуємо в один масив для більш простого виклику arr = Array (cbMenu, cbStandart, cbFormat ) For lc = LBound (cbArr) To UBound (cbArr) CreateMenu (cbArr (lc)), arr (lc) Next lc End Sub Function CreateMenu (cbName As String, arr) Dim vType, vID, lc As Long Dim asSp On Error Resume Next With Application.CommandBars.Add (cbName,,, True) .Controls For lc = LBound (arr) To UBound (arr) asSp = Split (arr (lc), "|") .Add Type: = Val (asSp (1)), ID: = Val (asSp (0)) Next End With 'Робимо меню видимим Application.CommandBars (cbName) .Visible = True End Function' --------------- -------------------------------------------------- ---------- ------------ 'Procedure: Del_Menu2003' Purpose: Процедура видалення раніше створеного меню Excel 2003 '----------------------- -------------------------------------------------- -------------- Sub Del_Menu () On Error Resume Next Dim x For Each x In Array ( "Меню 2003", "Стандартна 2003", "Форматування 2003") Application.CommandBars (x ) .Delete Next End Sub

Враховуйте, що створена панель буде існувати навіть після закриття файлу і навіть після закриття Excel.
Так само додаю файл, в якому можна натисканням кнопок створити меню і видалити. Для тих, хто не знайомий з макросами: перш ніж спробувати створити меню за допомогою викладеного тут файлу настійно рекомендую прочитати цю статтю: Чому не працює макрос?

Звичайно, це не кращий варіант і якщо пошукати в мережі, то можна знайти програми, які так само відтворюють меню в стилі 2003 але майже всі вони платні.

Завантажити приклад:

Tips_All_MakeMenu2003.xls (61,5 KiB, 1 966 завантажень)

Стаття допомогла? Поділися посиланням з друзями! Відео уроки

{ "Bottom bar": { "textstyle": "static", "textpositionstatic": "bottom", "textautohide": true, "textpositionmarginstatic": 0, "textpositiondynamic": "bottomleft", "textpositionmarginleft": 24, " textpositionmarginright ": 24," textpositionmargintop ": 24," textpositionmarginbottom ": 24," texteffect ":" slide "," texteffecteasing ":" easeOutCubic "," texteffectduration ": 600," texteffectslidedirection ":" left "," texteffectslidedistance " : 30, "texteffectdelay": 500, "texteffectseparate": false, "texteffect1": "slide", "texteffectslidedirection1": "right", "texteffectslidedistance1": 120, "texteffecteasing1": "easeOutCubic", "texteffectduration1": 600 , "texteffectdelay1" 1000, "texteffect2": "slide", "texteffectslidedirection2": "right", "texteffectslidedistance2": 120, "texteffecteasing2": "easeOutCubic", "texteffectduration2": 600, "texteffectdelay2": 1500, " textcss ":" display: block; padding: 12px; text-align: left; "," textbgcss ":" display: block; position: absolute; top: 0px; left: 0px; width: 100%; height: 100% ; background-color: # 333333; opacity: 0.6; filter: a lpha (opacity = 60); "," titlecss ":" display: block; position: relative; font: bold 14px \ "Lucida Sans Unicode \", \ "Lucida Grande \", sans-serif, Arial; color: #fff; "," descriptioncss ":" display: block; position: relative; font: 12px \ "Lucida Sans Unicode \", \ "Lucida Grande \", sans-serif, Arial; color: #fff; margin-top: 8px; "," buttoncss ":" display: block; position: relative; margin-top: 8px; "," texteffectresponsive ": true," texteffectresponsivesize ": 640," titlecssresponsive ":" font-size: 12px; "," descriptioncssresponsive ":" display: none! important; "," buttoncssresponsive ": "", "addgooglefonts": false, "googlefonts": "", "textleftrightpercentforstatic": 40}}

Пошук по мітках

Access apple watch Multex Outlook Power Query і Power BI VBA робота в редакторі VBA управління кодами Безкоштовні надбудови дата та час Діаграми і графіки записки захист даних Інтернет Картинки і об'єкти Листи і книги Макроси і VBA надбудови Налаштування печатка Пошук даних Політика конфіденційності Пошта програми Робота з додатками Робота з файлами Розробка додатків зведені таблиці списки Тренінги та вебінари фінансові форматування Формули і функції функції Excel функції VBA Осередки і діапазони акції MulTEx аналіз даних баги і глюки в Excel посилання

Новости