Как удалить кнопки excel vba

Программное удаление элементов управления формы с рабочего листа при помощи кода VBA Excel. Метод Delete объекта Shape — синтаксис, примеры.

Метод Delete объекта Shape

Синтаксис метода Delete объекта Shape:

Workbooks("BookName").Worksheets("SheetName").Shapes("ShapeName").Delete

  • BookName – имя рабочей книги вместе с расширением, книга должна быть открыта.
  • SheetName – имя рабочего листа, которое отображается на ярлычке.
  • ShapeName – имя элемента управления формы.

Элементы управления формы имеют два имени: основное на английском языке и альтернативное на русском. Как ни странно, оба этих имени можно использовать в качестве ShapeName в выражении, удаляющем элемент управления с рабочего листа.

Чтобы узнать альтернативное имя на русском языке, необходимо кликнуть правой кнопкой мыши по элементу управления формы. Откроется первое контекстное меню, а в адресной строке отобразится альтернативное имя.

Альтернативное имя кнопки на русском языке

Альтернативное имя кнопки на русском языке

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

Основное имя кнопки на английском языке

Основное имя кнопки на английском языке

Точно так же определяются основные и альтернативные имена других элементов управления формы.

Удаление одного элемента управления

Удаление элемента управления формы с рабочего листа книги, в которой размещен код:

ThisWorkbook.Worksheets("Лист2").Shapes("Button 5").Delete

Worksheets("Лист4").Shapes("Перекл. 3").Delete

ActiveSheet.Shapes("Drop Down 2").Delete

Удаление элемента управления формы с рабочего листа другой открытой книги:

Workbooks("Чеки.xls").Worksheets("Чек №5").Shapes("Кнопка 2").Delete

Удаление всех элементов управления

Удаление всех элементов управления формы всех типов:

Sub Primer_1()

Dim myShap As Shape

  For Each myShap In ActiveSheet.Shapes

    myShap.Delete

  Next

End Sub

Этот код удалит все имеющиеся на листе элементы управления формы.

Удаление всех однотипных элементов управления формы:

Sub Primer_2()

Dim myShap As Shape

  For Each myShap In ThisWorkbook.ActiveSheet.Shapes

    If myShap.Name Like «Button*» Then myShap.Delete

  Next

End Sub

Этот код удалит все имеющиеся на листе элементы, в наименование которых входит подстрока «Button». В данном случае будут удалены все кнопки.

Точно также можно удалить и другие типы элементов управления формы, заменив аргумент оператора Like «Button*» на часть имени другого типа элементов с символом звездочки. Например: «Label*», «Drop Down*», «Check Box*» и т.д.

Смотрите как удалить элементы управления ActiveX с рабочего листа.

I’ve got a bit of code that creates a Save button on a worksheet (held in the wsReport variable), but it doesn’t remove previous buttons. Over time, they tend to build up. Is there any way to do something like this?

wsReport.Buttons.All.Delete

(Not right, obviously, but gives an idea of what I’m looking for.)

Martijn Pieters's user avatar

asked Feb 15, 2016 at 12:25

Andrew Perry's user avatar

1

See the code below:

Sub DeleteAllShapes() 

    ActiveSheet.Shapes.SelectAll

    Selection.Delete

End Sub

Shayki Abramczyk's user avatar

answered Aug 28, 2019 at 13:08

Info City's user avatar

If somebody found this question, but needs to delete only one button, this helped me:

ActiveSheet.Shapes("my_button_name").Delete

answered Jun 26, 2020 at 9:12

elano7's user avatar

elano7elano7

1,3161 gold badge16 silver badges16 bronze badges

There’s an easier method that doesn’t use VB:

  1. Click the Developer tab
  2. Click Design Mode
  3. Click on any button in the worksheet
  4. Press Ctrl + A to select all buttons in the worksheet
  5. Press Delete

answered Oct 16, 2017 at 19:01

thatguy's user avatar

1

В этой статье говорится об удалении всех кнопок управления формой или командных кнопок с активного листа в Excel.

Удалите все кнопки, включая кнопки управления формой и командные кнопки, выбрав их все
Удалите все кнопки, включая кнопки управления формой и командные кнопки, с помощью кода VBA
Удалите все кнопки управления формой или командные кнопки с кодом VBA


Удалите все кнопки, включая кнопки управления формой и командные кнопки, выбрав их все

Чтобы удалить все кнопки (включая кнопки управления формой и кнопки команд) с активного листа, сделайте следующее.

1. Включите режим дизайна, нажав Застройщик > Режим проектирования. Смотрите скриншот:

2. Выберите одну из командных кнопок и нажмите Ctrl + A клавиши для выбора всех кнопок на текущем листе.

3. нажмите Удалить для удаления всех выбранных кнопок.

Внимание: Если на этом листе есть другие объекты, они также будут выбраны.


Удалите все кнопки, включая кнопки управления формой и командные кнопки, с помощью кода VBA

Кроме того, вы можете применить ниже сценарий VBA, чтобы удалить все кнопки с текущего рабочего листа в Excel.

1. Откройте рабочий лист, содержащий кнопки, которые вы хотите удалить, а затем нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули, затем скопируйте ниже код VBA в окно кода.

Код VBA: удалить все кнопки с активного листа

Sub Clear_ButtonsActiveSheet()
    Dim I As Long
    Dim xOLE As Object
    On Error Resume Next
    ActiveSheet.Buttons.Delete
    For Each xOLE In ActiveSheet.OLEObjects
        If TypeName(xOLE.Object) = "CommandButton" Then
            xOLE.Delete
        End If
    Next
End Sub

3. Press the F5 key to run the code. Then all buttons including form control buttons and command buttons are removed from current worksheet immediately.


Remove all form control buttons or command buttons with VBA code

If you only want to remove all form control buttons or all command buttons from active sheet. You can try the below VBA codes to achieve it.

1. Open the worksheet contains the buttons you want to remove, and then press the Alt + F11 keys to open the Microsoft Visual Basic for Applications window.

2. In the Microsoft Visual Basic for Applications window, click Insert > Module, then copy below VBA code into the Code window.

VBA code: Remove all form control buttons from active sheet

Sub Clear_ButtonsActiveSheet()
    ActiveSheet.Buttons.Delete
End Sub

VBA code: Remove all command buttons from active sheet

Sub Clear_ButtonsActiveSheet()
    Dim xOLE As Object
    On Error Resume Next
    For Each xOLE In ActiveSheet.OLEObjects
        If TypeName(xOLE.Object) = "CommandButton" Then
            xOLE.Delete
        End If
    Next
End Sub

3. Press the F5 key to run the code.

Then all form control buttons or all command buttons are removed from current worksheet immediately.


Related articles:

  • How to insert a blank new row automatically by Command Button in Excel?
  • How to use Command Button to save active worksheet as PDF file in Excel?
  • How to update or insert (current) date and time by a Command Button in Excel?
  • How to use a Command Button to change a specified cell value in Excel?

The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails…
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns… Prevent Duplicate Cells; Compare Ranges
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select…
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more…
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic…
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF
  • More than 300 powerful features. Supports Office / Excel 2007-2021 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.

kte tab 201905

Read More… Free Download… Purchase… 


Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!

officetab bottom

Read More… Free Download… Purchase… 

Comments (1)


No ratings yet. Be the first to rate!

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

Здравствуйте все.
На листе есть Кнопка (элемент управления формы) для запуска макроса. Я программно копирую часть этого листа на другой лист вместе с кнопкой, но на новом месте она не нужна.  По тексту-названию кнопки объект программно не находится. При записи макроса удаления, объект был назван «Button 93», но номер при каждом копировании меняется… Подскажите, пожалуйста, где можно найти ее имя или как посмотреть текущий номер этого объекта, чтобы можно было ей управлять.

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

а по надписи на ней?

или alternativetext..

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

#3

18.07.2013 15:17:42

Код
For Each IShape In ActiveSheet.Shapes
    If IShape.Name Like "Button*" Then IShape.Delete
Next

Учимся сами и помогаем другим…

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

#4

18.07.2013 15:25:38

Это работает, только у меня есть на листе и нужные кнопки… В итоге удалились все, но за идею спасибо. Попробую исключить нужные и удалить оставшиеся. Хотя конечно правильнее бы знать имя конкретного объекта…

Цитата
Слэн пишет: а по надписи на ней?

По надписи не идентифицируется.

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

#5

18.07.2013 15:33:25

Цитата
aws1967 пишет:
По надписи не идентифицируется.

почему? что все кнопки с одинаковыми надписями?

как же вы ими пользуетесь?

Живи и дай жить..

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

По тексту, который виден на кнопке программа ее не находит. В системе она хранится как «Button N», и где это переназначить я найти не могу. В интерфейсе я могу только переназначить макрос и изменить текст…

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

#7

18.07.2013 15:40:12

Согласен со Слэном: на копируемом листе зайдите в свойства кнопки и укажите в поле «Замещающий текст» что-нибудь типа «меткаДляУдаления». А в коде

Код
For Each IShape In ActiveSheet.Shapes 
If IShape.AlternativeText = "меткаДляУдаления" Then IShape.Delete 
Next

Учимся сами и помогаем другим…

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

#8

18.07.2013 15:48:33

почему же..

Код
for each but in activesheet.shapes
   if but.name like "butt*" then
      if but.drawingobect.object.caption="ваша надпись" then but.delete
   endif
next but

Изменено: Слэн18.07.2013 15:49:44

Живи и дай жить..

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

ber$erk, это понятно, только я не могу найти это свойство кнопки. На закладке Разработчик есть кнопка Свойства. По ней открываются свойства листа. Кнопок там нет. Выделение кнопки мышью тоже результата не дает. Значит что-то не так делаю… Что не так?

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

ПКМ на кнопке — «формат объекта»

Учимся сами и помогаем другим…

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

Слэн, Ваш код у меня не заработал — не удаляет ничего. Наверное Вы пишите про Элементы ActiveX, а у меня вставлена кнопка из Элементы управления формы.

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

#12

18.07.2013 16:13:23

Цитата
ber$erk пишет: ПКМ на кнопке — «формат объекта»

[CODE][/CODE]На закладке Свойства — только свойства привязки объекта к фону и печать, на закладке Веб — Замещающий текст и он совпадает с названием кнопки, которое программно не определяется. На закладках Шрифт, Выравнивание, Размер, Защита и Поля для данного случая ничего полезного нет.
Может элементы управления формы так себя и должны вести? А более глубокие свойства доступны только в элементах ActiveX?

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

на закладке «Замещающий текст» напишите «меткаДляУдаления». Скопируйте лист. На новом листе запустите мой код

Учимся сами и помогаем другим…

 

Igor67

Пользователь

Сообщений: 3729
Регистрация: 21.12.2012

#14

18.07.2013 16:33:23

Проверил, все нормально для кнопок ФОРМЫ. Просто Слэн на коленке видно писал для примера и не провреил орфографию

Код
Sub delitKnopka()
Dim but As Object
For Each but In ActiveSheet.Shapes
   If but.Name Like "Button*" Then
      If but.DrawingObject.Caption = "Привет" Then but.Delete
   End If
Next but
End Sub
 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

#15

18.07.2013 16:40:14

Цитата
на закладке «Замещающий текст» напишите «меткаДляУдаления». Скопируйте лист. На новом листе запустите мой код

Все заработало. Большое спасибо.

 

Ivanov Petr

Пользователь

Сообщений: 43
Регистрация: 01.01.1970

#16

19.07.2013 15:29:34

aws1967,, а не могли бы…
вопрос не по теме удален [МОДЕРАТОР].

Изменено: Ivanov Petr19.07.2013 16:47:04

Удалить все кнопки (елементы управления формой):[vba]

Код

Sub delAll()
ActiveSheet.Buttons.Delete
End Sub

[/vba]

Удалить все кнопки (активИкс):[vba]

Код

Sub dell()
For Each ob In ActiveSheet.OLEObjects
If ob.Name Like «CommandButton*» Then
ob.Delete
End If
Next
End Sub

[/vba]

Удалить по названию:
[vba]

Код

Sub del()
Dim i&, tx$
tx = InputBox(«Введите подпись кнопки для удаления»)
On Error Resume Next
       For i = 1 To ActiveSheet.OLEObjects.Count
           If ActiveSheet.OLEObjects.Item(i).Object.Caption = tx Then
               ActiveSheet.OLEObjects.Item(i).Delete
           End If
       Next
       For i = 1 To ActiveSheet.Buttons.Count
           If ActiveSheet.Buttons.Item(i).Caption = tx Then
               ActiveSheet.Buttons.Item(i).Delete
           End If
       Next
End Sub

[/vba]

  • #2

Code:

Sub Clear_Buttons()
Dim i As Integer
    If ActiveSheet.ProtectContents = True Then
        MsgBox "The Current Workbook or the Worksheets which it contains are protected." & vbLf & "                          Please resolve these issues and try again."
    End If
    
On Error Resume Next
    For i = 1 To 10000
        ActiveWorkbook.sheets(i).Buttons.Delete
    Next i

Test on a COPY of your workbook, but I think this is what you need. I’ve found that even with 10,000 loops, it runs pretty quick.

  • #3

Code:

Sub Clear_Buttons()
Dim i As Integer
    If ActiveSheet.ProtectContents = True Then
        MsgBox "The Current Workbook or the Worksheets which it contains are protected." & vbLf & "                          Please resolve these issues and try again."
    End If
 
On Error Resume Next
    For i = 1 To 10000
        ActiveWorkbook.sheets(i).Buttons.Delete
    Next i
End Sub

Test on a COPY of your workbook, but I think this is what you need. I’ve found that even with 10,000 loops, it runs pretty quick.

It just occured to me that you said on a SHEET, not in a whole workbook. If that’s the case, try this instead:

Code:

Sub Clear_Buttons()
Dim i As Integer
    If ActiveSheet.ProtectContents = True Then
        MsgBox "The Current Workbook or the Worksheets which it contains are protected." & vbLf & "                          Please resolve these issues and try again."
    End If
 
    On Error Resume Next
        ActiveSheet.Buttons.Delete
End Sub

Last edited: Jan 31, 2012

Ermak27

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

1

Удалить кнопки в контекстном меню

24.01.2013, 01:32. Показов 7042. Ответов 25

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Подскажите пожалуйста я решил удалить лишнии кнопки в меню, покопался в инете и нашел как это делает но почему ту у меня выдает ошибку, что я не так делаю?

Visual Basic
1
2
3
4
5
Private Sub Workbook_Open()
    
    Application.CommandBars("Вид").Delete
 
End Sub

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

Добавлено через 4 часа 44 минуты



0



4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

28.01.2013, 18:18

 [ТС]

2

Подскажите как удалить кнопку?



0



1337 / 308 / 74

Регистрация: 13.11.2008

Сообщений: 635

28.01.2013, 21:56

3

Вы пытаетесь удалить не кнопку, а все меню «Вид». Попробуйте так:

Код

Application.CommandBars("View").Controls("Строка &формул").Delete

А вообще в версиях, начиная с 2007 это можно делать через XML, но со своими нюансами. Придется через XML восстанавливать вид каждой вкладки(без ненужных Вам команд), т.к. манипулировать стандартными не получится.
Начиная с версии 2010 изменять видимость можно без макросов(применяется к приложению в целом). А вот макросом как раз может не получится.

Добавлено через 49 минут
Кстати, если хотите редактировать именно контекстное меню(всплывающее при нажатии правой кнопкой мыши), то это сделать куда как проще:

Код

CommandBars("Cell").Controls("В&ырезать").Delete



1



4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

29.01.2013, 00:23

 [ТС]

4

Цитата
Сообщение от The_Prist
Посмотреть сообщение

Вы пытаетесь удалить не кнопку, а все меню «Вид». Попробуйте так:

Код

Application.CommandBars("View").Controls("Строка &формул").Delete

Добавлено через 49 минут
Кстати, если хотите редактировать именно контекстное меню(всплывающее при нажатии правой кнопкой мыши), то это сделать куда как проще:

Код

CommandBars("Cell").Controls("В&ырезать").Delete

А если я добавить хочу тогда как?
И как сделать чтобы работало только для данного документа



0



1337 / 308 / 74

Регистрация: 13.11.2008

Сообщений: 635

29.01.2013, 08:23

5

Добавить

Код

CommandBars("Cell").Controls.Add

Чтобы работало только для одного документа присмотритесь к событиям книги: Workbook_Activate, Workbook_Deactivate, Workbook_Open, Workbook_Beforeclose



1



Ermak27

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

29.01.2013, 15:33

 [ТС]

6

The_Prist, Я здесь нашел пример один, не могу до конца разобраться как сделать, подскажите пожалуйста

Вот пример кода

Visual Basic
1
2
3
4
5
6
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
    If Union(Target.Range("A1"), Range("data")).Address = Range("data").Address Then
        CommandBars("MyShortcut").ShowPopup
        Cancel = True
    End If
End Sub

Тут как я понял Range берет ячейки из Диспетчера имен, а как мне сделать чтобы он брал с диапазона

Visual Basic
1
2
3
4
Range("a" & rrow & ":eq" & Cells(rrow, 6).End(xlDown).Row)

 
Range("a" & rrow & ":eq" & .Cells(.Rows.Count, 2).End(xlUp)

Это я взял со своего кода



0



1337 / 308 / 74

Регистрация: 13.11.2008

Сообщений: 635

29.01.2013, 20:22

7

Скорее Вам надо через Intersect:

Код

Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
    If Not Intersect(Target, Range("a" & rrow & ":eq" & Cells(rrow, 6).End(xlDown).Row)) is Nothing Then
        CommandBars("MyShortcut").ShowPopup
        Cancel = True
    End If
End Sub



1



Ermak27

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

30.01.2013, 01:11

 [ТС]

8

The_Prist, что то у меня не получается

Вот код я ставлю его на Лист

Visual Basic
1
2
3
4
5
6
7
8
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
    
    If Not Intersect(Target, Range("a" & rrow & ":eq" & Cells(rrow, 6).End(xlDown).Row)) Is Nothing Then
        CommandBars("MyShortcut").ShowPopup
        Cancel = True
    End If
End Sub

Этот код ставлю ЭтаКнига

Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call DeleteShortcut
End Sub
 
Private Sub Workbook_Open()
 
   
Call CreateShortcut
 
End Sub

И в модуль ставлю этот код

Visual Basic
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
Sub CreateShortcut()
    Dim myBar As CommandBar
    Dim myItem As CommandBarControl
    
    DeleteShortcut
    Set myBar = CommandBars.Add _
      (Name:="MyShortcut", Position:=msoBarPopup, Temporary:=True)
    
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
    With myItem
        .Caption = "&Добавить..."
        .OnAction = "add_row"
        .FaceId = 1554
    End With
        
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
    With myItem
        .Caption = "&Удалить..."
        .OnAction = "dell_row"
        .FaceId = 217
    End With
        
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
    With myItem
        .Caption = "&Утвердить..."
        .OnAction = "red_row"
        .FaceId = 291
    End With
 
 
End Sub
 
Sub DeleteShortcut()
    On Error Resume Next
    CommandBars("MyShortcut").Delete
End Sub

Не понимаю почему не работает меню мое, можете посмотреть я прикрепил архив, пароль к файл 111222

Вложения

Тип файла: zip попов.zip (169.1 Кб, 9 просмотров)



0



1337 / 308 / 74

Регистрация: 13.11.2008

Сообщений: 635

30.01.2013, 09:40

9

Вобще-то все нормально работает. За исключением того, что у Вас переменная rrow нигде не объявлена и значение ей тоже нигде не назначается. Поэтому получаете законную ошибку, т.к. диапазон не может начинаться с нулевой строки. Должна быть минимум 1.
Судя по листингу — Вам, наверное, вот такой вариант подойдет вполне:

Код

    If Not Intersect(Target, Range("a11:eq" & Cells(Rows.Count, 6).End(xlDown).Row)) Is Nothing Then
        CommandBars("MyShortcut").ShowPopup
        Cancel = True
    End If



0



4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

30.01.2013, 13:08

 [ТС]

10

The_Prist, Я заменил на ваш код все равно не отображается мое меню



0



1337 / 308 / 74

Регистрация: 13.11.2008

Сообщений: 635

30.01.2013, 13:30

11

А Вы по какому событию его видеть хотите? У Вас сейчас меню всплывает при двойном клике на ячейке ниже 10 строки.



1



4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

30.01.2013, 14:33

 [ТС]

12

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



0



The_Prist

1337 / 308 / 74

Регистрация: 13.11.2008

Сообщений: 635

30.01.2013, 15:11

13

Эх…

Ну Вы читали хоть, что я написал?

У Вас и не появится меню, т.к. Вы повесили его появление на событие двойного клика в ячейке. Чтобы появлялось по событию правого клика его и надо обрабатывать:

Visual Basic
1
2
3
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 
End Sub



1



4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

30.01.2013, 18:17

 [ТС]

14

The_Prist, Спасибо большое я разобрался!!! Вы можете подсказать где можно посмотреть какие цифры для ярлычков меню

Например FaceId = 217

и как поставить полоску деления в меню

Добавлено через 5 минут
Как еще к пункту добавить клавишу, например Ctrl



0



1337 / 308 / 74

Регистрация: 13.11.2008

Сообщений: 635

30.01.2013, 19:35

15

Да простят меня модераторы: попробую дать ссылку на свой сайт, где лежит надстройка для определения FaceId иконок. Панель иконок FaceID

Если ссылку удалят — пишите в личку, перешлю ссылку туда.
а про клавишу Ctrl ничего не понял. Если имели ввиду запуск клавишами — то смотрите в сторону Application.OnKey



1



Ermak27

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

30.01.2013, 21:16

 [ТС]

16

The_Prist, спасибо буду изучать.

Добавлено через 1 час 25 минут
The_Prist, Я нашел пример

Visual Basic
1
2
3
4
Private Sub Auto_Open()
    Application.OnKey Key:="^c", Procedure:="NewName"
    ' Сочетание клавиш CTRL + C (c)
End Sub

Но я не пойму как для моего случая сделать

Visual Basic
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
Sub CreateShortcut()
    Dim myBar As CommandBar
    Dim myItem As CommandBarControl
    
    DeleteShortcut
    Set myBar = CommandBars.Add _
      (Name:="MyShortcut", Position:=msoBarPopup, Temporary:=True)
    
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
    With myItem
        .Caption = "&Добавить строку..."
        .OnAction = "add_row"
        .FaceId = 194
    End With
End Sub
 
Sub add_row()
 
       Sheets("Услуги").Unprotect Password:="111222"
       
        Rows(ActiveCell.Row).Insert
        Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)
       Sheets("Услуги").Protect Password:="111222"
 
End Sub



0



1337 / 308 / 74

Регистрация: 13.11.2008

Сообщений: 635

30.01.2013, 21:30

17

Итак. Создаете отдельную процедуру:

Код

Sub MyPopup()
    CommandBars("MyShortcut").ShowPopup
End Sub

А на клавиши тогда прописываете так:

Код

Application.OnKey Key:="^c", Procedure:="MyPopup"

Не забудьте перед закрытием книги очистить переназначение для клавиш:

Код

Application.OnKey Key:="^c"



1



Ermak27

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

31.01.2013, 00:13

 [ТС]

18

Я сделал, но у меня когда я нажимаю клавиши Ctrl+C у меня открывается мое контекстное меню, что не так сделал явно.

Я создал процедуру

Visual Basic
1
2
3
Sub MyPopup()
    CommandBars("MyShortcut").ShowPopup
End Sub

Добавил клавиши

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub CreateShortcut()
    Dim myBar As CommandBar
    Dim myItem As CommandBarControl
    
    DeleteShortcut
    Set myBar = CommandBars.Add _
      (Name:="MyShortcut", Position:=msoBarPopup, Temporary:=True)
    
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
    With myItem
        .Caption = "&Добавить строку..."
        .OnAction = "add_row"
        .FaceId = 194
        Application.OnKey Key:="^c", Procedure:="MyPopup"
    End With
End Sub

А вот очистить решил поставить сюда (Эта Книга), но я не уверен что правильно

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Workbook_Open()
  Application.OnKey Key:="^c"
 '   ActiveWorkbook.Unprotect Password:="112233"
 '   Sheets("МТР").EnableOutlining = True
 '   Sheets("МТР").Protect Password:="112233", Scenarios:=True, UserInterfaceOnly:=True
  Sheets("Справочник товаров").Protect Password:="111222", UserInterfaceOnly:=True
Sheets("Справочник товаров").EnableAutoFilter = True
 
      Const MyPassword = "111222"
    With Sheets("Услуги")
        .Unprotect Password:=MyPassword
        .EnableOutlining = True
        .Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
            AllowFiltering:=True, UserInterfaceOnly:=True
    End With
    Set wsDict = ThisWorkbook.Worksheets("Справочник товаров")
    Set MyRange = Nothing
    
Call CreateShortcut
 
End Sub



0



1337 / 308 / 74

Регистрация: 13.11.2008

Сообщений: 635

31.01.2013, 07:52

19

Так Вы при открытии книги очищаете. Вчитайтесь в имя процедуры Workbook_Open: Книга_Открыть
Здесь Вам как раз надо вставлять Application.OnKey Key:=»^c», Procedure:=»MyPopup»

А вот на событие Workbook_BeforeClose() — очищать. Как проще найти эти процедуры:
-в окне редактора VBA, в модуле ЭтаКнига ищете вверху над полем(в котором текст макроса пишеше) выпадающий список слева. Выбираете в нем Workbook. Затем в правом выпадающем списке выбираете нужную процедуру. Она вставляется, а Вы лишь вписываете нужный код внутрь.



1



Ermak27

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

31.01.2013, 13:48

 [ТС]

20

The_Prist, что не получается, вот сделал для своего примера

Visual Basic
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
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call DeleteShortcut
   Application.OnKey Key:="^z"
 
End Sub
Private Sub Workbook_Open()
  
  Application.OnKey Key:="^z", Procedure:="MyPopup"
 '   ActiveWorkbook.Unprotect Password:="112233"
 '   Sheets("МТР").EnableOutlining = True
 '   Sheets("МТР").Protect Password:="112233", Scenarios:=True, UserInterfaceOnly:=True
  Sheets("Справочник товаров").Protect Password:="111222", UserInterfaceOnly:=True
Sheets("Справочник товаров").EnableAutoFilter = True
 
      Const MyPassword = "111222"
    With Sheets("Услуги")
        .Unprotect Password:=MyPassword
        .EnableOutlining = True
        .Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, _
            AllowFiltering:=True, UserInterfaceOnly:=True
    End With
    Set wsDict = ThisWorkbook.Worksheets("Справочник товаров")
    Set MyRange = Nothing
    
Call CreateShortcut
 
End Sub

и в модуле

Visual Basic
1
2
3
Sub MyPopup()
    CommandBars("MyShortcut").ShowPopup
End Sub

но все равно не добавляет

это мы делаем для кнопки Добавить строку и мы прописываем «MyShortcut»

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub CreateShortcut()
    Dim myBar As CommandBar
    Dim myItem As CommandBarControl
    
    DeleteShortcut
    Set myBar = CommandBars.Add _
      (Name:="MyShortcut", Position:=msoBarPopup, Temporary:=True)
    
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
   
    With myItem
        .Caption = "&Добавить строку...             &Ctrl+Z"
        .OnAction = "add_row"
        .FaceId = 194
        
    End With
End Sub

а если будет еще добавлена кнопка, «MyShortcut» я так понимаю для всего меню одна используется

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub CreateShortcut()
    Dim myBar As CommandBar
    Dim myItem As CommandBarControl
    
    DeleteShortcut
    Set myBar = CommandBars.Add _
      (Name:="MyShortcut", Position:=msoBarPopup, Temporary:=True)
    
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
   
    With myItem
        .Caption = "&Добавить строку...             &Ctrl+Z"
        .OnAction = "add_row"
        .FaceId = 194
        
    End With
              
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
    With myItem
        .Caption = "&Удалить строку...               &Ctrl+X"
        .OnAction = "dell_row"
        .FaceId = 108
    End With
End Sub

«MyShortcut» я так понимаю для всего меню одна используется, что то я тут не понимаю

Вложения

Тип файла: zip попов.zip (175.5 Кб, 6 просмотров)



0



Провожу супер-мастер-класс.

открываем книгу «#График пр-ва.xlsb«, там лист «ГП>ГПФ«, жмем кнопку «Рассчитать заказ«
при открытии формы, откроется другая книга и оттуда подгрузится вся необходимая инфа.

После того, как форма появится, перейдите на лист «График» для более наглядной работы:

выбираем из выпадающего списка вариант оборудования, видим его продолжительность справа
если нажать флажок правее, техоперация попадает на лист
[это типа формирование заявки на производство — производство одного вида полуфабриката состоит из стадий, каждая из которых может быть осуществлена на перечне соотв. оборудования]

я, честно говоря, всего там не помню, сейчас подчистил файлики побыстрому, у меня заработало, надеюсь у вас тоже заработает.

Провожу супер-мастер-класс.

открываем книгу «#График пр-ва.xlsb«, там лист «ГП>ГПФ«, жмем кнопку «Рассчитать заказ«
при открытии формы, откроется другая книга и оттуда подгрузится вся необходимая инфа.

После того, как форма появится, перейдите на лист «График» для более наглядной работы:

выбираем из выпадающего списка вариант оборудования, видим его продолжительность справа
если нажать флажок правее, техоперация попадает на лист
[это типа формирование заявки на производство — производство одного вида полуфабриката состоит из стадий, каждая из которых может быть осуществлена на перечне соотв. оборудования]

я, честно говоря, всего там не помню, сейчас подчистил файлики побыстрому, у меня заработало, надеюсь у вас тоже заработает. Саня

Сообщение Провожу супер-мастер-класс.

открываем книгу «#График пр-ва.xlsb«, там лист «ГП>ГПФ«, жмем кнопку «Рассчитать заказ«
при открытии формы, откроется другая книга и оттуда подгрузится вся необходимая инфа.

После того, как форма появится, перейдите на лист «График» для более наглядной работы:

выбираем из выпадающего списка вариант оборудования, видим его продолжительность справа
если нажать флажок правее, техоперация попадает на лист
[это типа формирование заявки на производство — производство одного вида полуфабриката состоит из стадий, каждая из которых может быть осуществлена на перечне соотв. оборудования]

я, честно говоря, всего там не помню, сейчас подчистил файлики побыстрому, у меня заработало, надеюсь у вас тоже заработает. Автор — Саня
Дата добавления — 24.03.2017 в 22:26

Источник

Как в excel удалить кнопку

Как удалить строку рабочего листа Excel с клавиатуры горячими клавишами?

Для удаления строки в Excel существует несколько различных инструментов. Само удаление в Excel может быть разным. Можно удалить только содержимое ячеек строки, выделив строку и нажав клавишу Delete, при этом ячейки остаются на своих местах и продолжают хранить информацию о формате (шрифтах, заливках и так далее), а можно удалить строку как таковую, когда все ячейки выделенной строки удаляются, а их место занимают ячейки, расположенные строкой ниже.

Удаление строки при помощи контекстного меню

Самый простой способ для удаления строки в Excel — это использование контекстного меню, которое вызывается нажатием правой кнопки мыши. Для удаления строки, её необходимо предварительно выделить, затем вызвать контекстное меню и выбрать из него пункт «Удалить». Происходит удаление строки со сдвигом вверх, то есть ячейки выделенной строки исчезают, а все табличное поле, расположенное под удаляемой строкой смещается вверх. Аналогичным образом можно удалить несколько выделенных строк, для этого при выделении строк необходимо держать нажатой клавишу Ctrl. После того как строки выделены, вызывается контекстное меню и выбирается пункт «Удалить».

Удаление строки с клавиатуры горячими клавишами

Более быстрый способ удалить строку или несколько строк — использовать сочетание горячих клавиш на клавиатуре. Чтобы удалить строку с клавиатуры горячими клавишами, необходимо просто нажать Ctrl+»-«, то есть две клавиши, одна из которых Ctrl, а вторая «-«. Следует заметить, что строка (или несколько строк) должны быть предварительно выделены. Команда удаляет выделенную область со сдвигом вверх. Её использование позволяет сэкономить немного времени и избавиться от лишнего движения, которым вызывается контекстное меню. Можно еще несколько ускорить процесс удаления строки при помощи горячих клавиш, но для этого придется сделать две вещи. Во-первых, сохранить макрос в личной книге макросов и во-вторых, закрепить выполнение этого макроса за определенным сочетанием клавиш на клавиатуре.

1. Сохраняем макрос

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

Для того, чтобы перенести этот программный код на свой компьютер, наведите курсор мыши на поле с программным кодом, нажмите на одну из двух кнопкок в правом верхнем углу этого поля, скопируйте программный код и вставьте его в модуль проекта на своем компьютере (подробнее о том, как сохранить программный код макроса ).

2. Присваиваем макросу сочетание клавиш

О том, как задать макросу сочетание горячих клавиш написано отдельно. Следует заметить, что относиться к выбору клавиш следует осторожно, так как некоторые сочетания уже используются приложением Excel. Кроме того приложение различает алфавит заданной буквы, поэтому чтобы не обращать внимания на раскладку клавиатуры при запуске макроса, можно создать копию макроса с другим именем и закрепить за ней сочетание клавиш с использованием той же кнопки, но в другой раскладке.

Макрос для удаления строк по условию

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

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

VBA Excel. Удаление элементов управления формы с листа

Программное удаление элементов управления формы с рабочего листа при помощи кода VBA Excel. Метод Delete объекта Shape — синтаксис, примеры.

Метод Delete объекта Shape

Синтаксис метода Delete объекта Shape:

Workbooks(«BookName»).Worksheets(«SheetName»).Shapes(«ShapeName»).Delete

  • BookName – имя рабочей книги вместе с расширением, книга должна быть открыта.
  • SheetName – имя рабочего листа, которое отображается на ярлычке.
  • ShapeName – имя элемента управления формы.

Элементы управления формы имеют два имени: основное на английском языке и альтернативное на русском. Как ни странно, оба этих имени можно использовать в качестве ShapeName в выражении, удаляющем элемент управления с рабочего листа.

Чтобы узнать альтернативное имя на русском языке, необходимо кликнуть правой кнопкой мыши по элементу управления формы. Откроется первое контекстное меню, а в адресной строке отобразится альтернативное имя.

Альтернативное имя кнопки на русском языке

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

Основное имя кнопки на английском языке

Точно так же определяются основные и альтернативные имена других элементов управления формы.

Удаление одного элемента управления

Удаление элемента управления формы с рабочего листа книги, в которой размещен код:

ThisWorkbook.Worksheets(«Лист2»).Shapes(«Button 5»).Delete

Worksheets(«Лист4»).Shapes(«Перекл. 3»).Delete

ActiveSheet.Shapes(«Drop Down 2»).Delete

Удаление элемента управления формы с рабочего листа другой открытой книги:

Workbooks(«Чеки.xls»).Worksheets(«Чек №5»).Shapes(«Кнопка 2»).Delete

Удаление всех элементов управления

Удаление всех элементов управления формы всех типов:

Этот код удалит все имеющиеся на листе элементы управления формы.

Удаление всех однотипных элементов управления формы:

Этот код удалит все имеющиеся на листе элементы, в наименование которых входит подстрока «Button». В данном случае будут удалены все кнопки.

Точно также можно удалить и другие типы элементов управления формы, заменив аргумент оператора Like «Button*» на часть имени другого типа элементов с символом звездочки. Например: «Label*», «Drop Down*», «Check Box*» и т.д.

Навигация по записям

VBA Excel. Удаление элементов управления формы с листа : 1 комментарий

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

Как удалить строку рабочего листа Excel с клавиатуры горячими клавишами?

Для удаления строки в Excel существует несколько различных инструментов. Само удаление в Excel может быть разным. Можно удалить только содержимое ячеек строки, выделив строку и нажав клавишу Delete, при этом ячейки остаются на своих местах и продолжают хранить информацию о формате (шрифтах, заливках и так далее), а можно удалить строку как таковую, когда все ячейки выделенной строки удаляются, а их место занимают ячейки, расположенные строкой ниже.

Удаление строки при помощи контекстного меню

Самый простой способ для удаления строки в Excel — это использование контекстного меню, которое вызывается нажатием правой кнопки мыши. Для удаления строки, её необходимо предварительно выделить, затем вызвать контекстное меню и выбрать из него пункт «Удалить». Происходит удаление строки со сдвигом вверх, то есть ячейки выделенной строки исчезают, а все табличное поле, расположенное под удаляемой строкой смещается вверх. Аналогичным образом можно удалить несколько выделенных строк, для этого при выделении строк необходимо держать нажатой клавишу Ctrl. После того как строки выделены, вызывается контекстное меню и выбирается пункт «Удалить».

Удаление строки с клавиатуры горячими клавишами

Более быстрый способ удалить строку или несколько строк — использовать сочетание горячих клавиш на клавиатуре. Чтобы удалить строку с клавиатуры горячими клавишами, необходимо просто нажать Ctrl+»-«, то есть две клавиши, одна из которых Ctrl, а вторая «-«. Следует заметить, что строка (или несколько строк) должны быть предварительно выделены. Команда удаляет выделенную область со сдвигом вверх. Её использование позволяет сэкономить немного времени и избавиться от лишнего движения, которым вызывается контекстное меню. Можно еще несколько ускорить процесс удаления строки при помощи горячих клавиш, но для этого придется сделать две вещи. Во-первых, сохранить макрос в личной книге макросов и во-вторых, закрепить выполнение этого макроса за определенным сочетанием клавиш на клавиатуре.

1. Сохраняем макрос

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

Для того, чтобы перенести этот программный код на свой компьютер, наведите курсор мыши на поле с программным кодом, нажмите на одну из двух кнопкок в правом верхнем углу этого поля, скопируйте программный код и вставьте его в модуль проекта на своем компьютере (подробнее о том, как сохранить программный код макроса ).

2. Присваиваем макросу сочетание клавиш

О том, как задать макросу сочетание горячих клавиш написано отдельно. Следует заметить, что относиться к выбору клавиш следует осторожно, так как некоторые сочетания уже используются приложением Excel. Кроме того приложение различает алфавит заданной буквы, поэтому чтобы не обращать внимания на раскладку клавиатуры при запуске макроса, можно создать копию макроса с другим именем и закрепить за ней сочетание клавиш с использованием той же кнопки, но в другой раскладке.

Макрос для удаления строк по условию

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

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

Удаление листов в Excel (3 способа)

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

В программе Эксель можно удалить как один лист, так и сразу несколько за раз. Давайте разберем, как это можно сделать разными методами.

Удаление листа через контекстное меню

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

  1. Для этого воспользуемся контекстными меню, которое вызывается щелчком правой кнопки мыши именно по тому листу, который мы хотим удалить.
  2. В открывшемся меню выбираем “Удалить”.
  3. Вот и все, ненужный лист был безвозвратно удален из книги.

Удаление через инструменты программы

Данный метод не так распространен, но все же, давайте его тоже попробуем применить.

  1. Для начала нужно выбрать лист, который нужно удалить.
  2. Далее переходим во вкладку “Главная”, щелкаем по блоку инструментов “Ячейки”, в раскрывшемся списке нажимаем на небольшую стрелку вниз рядом с кнопкой “Удалить”.
  3. Выбираем из открывшегося списка пункт “Удалить лист”.
  4. Выбранный нами лист будет удален из документа.

Примечание: если окно с программой достаточно растянуто по ширине, во вкладке “Главная” сразу будет отображаться кнопка “Удалить”, без необходимости предварительно нажимать на инструмент “Ячейки”.

Удаление сразу нескольких листов

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

  1. Если ненужные листы расположены подряд, их можно выделить следующим образом. Щелкните по первому листу, затем нажмите клавишу Shift, не отпуская ее, кликните по последнему листу, и потом можно отпустить клавишу. Речь, конечно же, идет про первый и последний листы из удаляемых. Выделять можно и в обратном порядке – от последнего к первому.
  2. В случаях, когда удаляемые листы расположены не подряд, их выделение происходит несколько иным способом. Зажимаем клавишу Ctrl, далее щелчком левой кнопки мыши выбираем все нужные листы, после чего отпускаем клавишу.
  3. Теперь, после того, как мы выделили лишние листы, можно приступить к их удалению любым из методов, которые были описаны выше.

Заключение

Итак, процедура удаления лишних листов в Эксель проста и абсолютно не трудоемка. Но при этом, она в определенных ситуациях, крайне полезна, чтобы “разгрузить” документ, сделав работу, как минимум, более комфортной. Пользуйтесь любым из предложенных методов, который вам показался наиболее удобным в реализации.

Удаление ячеек в Microsoft Excel

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

Процедура удаления ячеек

Собственно, процедура удаления ячеек в Excel обратна операции их добавления. Её можно подразделить на две большие группы: удаление заполненных и пустых ячеек. Последний вид, к тому же, можно автоматизировать.

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

Способ 1: контекстное меню

Прежде всего, давайте рассмотрим выполнение указанной процедуры через контекстное меню. Это один и самых популярных видов выполнения данной операции. Его можно применять, как к заполненным элементам, так и к пустым.

    Выделяем один элемент или группу, которую желаем удалить. Выполняем щелчок по выделению правой кнопкой мыши. Производится запуск контекстного меню. В нем выбираем позицию «Удалить…».

  • Запускается небольшое окошко удаления ячеек. В нем нужно выбрать, что именно мы хотим удалить. Существуют следующие варианты выбора:
    • Ячейки, со сдвигом влево;
    • Ячейки со сдвигом вверх;
    • Строку;
    • Столбец.

    Так как нам нужно удалить именно ячейки, а не целые строки или столбцы, то на два последних варианта внимания не обращаем. Выбираем действие, которое вам подойдет из первых двух вариантов, и выставляем переключатель в соответствующее положение. Затем щелкаем по кнопке «OK».

    А, если был выбран второй пункт, то со сдвигом влево.

    Способ 2: инструменты на ленте

    Удаление ячеек в Экселе можно также произвести, воспользовавшись теми инструментами, которые представлены на ленте.

    1. Выделяем элемент, который следует удалить. Перемещаемся во вкладку «Главная» и жмем на кнопку «Удалить», которая располагается на ленте в блоке инструментов «Ячейки».

  • После этого выбранный элемент будет удален со сдвигом вверх. Таким образом, данный вариант этого способа не предусматривает выбора пользователем направления сдвига.
  • Если вы захотите удалить горизонтальную группу ячеек указанным способом, то для этого будут действовать следующие правила.

      Выделяем эту группу элементов горизонтальной направленности. Кликаем по кнопке «Удалить», размещенной во вкладке «Главная».

  • Как и в предыдущем варианте, происходит удаление выделенных элементов со сдвигом вверх.
  • Если же мы попробуем удалить вертикальную группу элементов, то сдвиг произойдет в другом направлении.

      Выделяем группу элементов вертикальной направленности. Производим щелчок по кнопке «Удалить» на ленте.

  • Как видим, по завершении данной процедуры выбранные элементы подверглись удалению со сдвигом влево.
  • А теперь попытаемся произвести удаление данным способом многомерного массива, содержащего элементы, как горизонтальной, так и вертикальной направленности.

      Выделяем этот массив и жмем на кнопку «Удалить» на ленте.

  • Как видим, в этом случае все выбранные элементы были удалены со сдвигом влево.
  • Считается, что использование инструментов на ленте менее функционально, чем удаление через контекстное меню, так как данный вариант не предоставляет пользователю выбора направления сдвига. Но это не так. С помощью инструментов на ленте также можно удалить ячейки, самостоятельно выбрав направление сдвига. Посмотрим, как это будет выглядеть на примере того же массива в таблице.

      Выделяем многомерный массив, который следует удалить. После этого жмем не на саму кнопку «Удалить», а на треугольник, который размещается сразу справа от неё. Активируется список доступных действий. В нем следует выбрать вариант «Удалить ячейки…».

    Вслед за этим происходит запуск окошка удаления, которое нам уже знакомо по первому варианту. Если нам нужно удалить многомерный массив со сдвигом, отличным от того, который происходит при простом нажатии на кнопку «Удалить» на ленте, то следует переставить переключатель в позицию «Ячейки, со сдвигом вверх». Затем производим щелчок по кнопке «OK».

  • Как видим, после этого массив был удален так, как были заданы настройки в окне удаления, то есть, со сдвигом вверх.
  • Способ 3: использование горячих клавиш

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

      Выделяем на листе диапазон, который желаем убрать. После этого жмем комбинацию клавиш «Ctrl»+»-« на клавиатуре.

    Запускается уже привычное для нас окно удаления элементов. Выбираем желаемое направление сдвига и щелкаем по кнопке «OK».

  • Как видим, после этого выбранные элементы были удалены с направлением сдвига, которое было указано в предыдущем пункте.
  • Способ 4: удаление разрозненных элементов

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

      Первый элемент выделяем обычным способом, зажимая левую кнопку мыши и обведя его курсором. Затем следует зажать на кнопку Ctrl и кликать по остальным разрозненным ячейкам или обводить диапазоны курсором с зажатой левой кнопкой мыши.

  • После того, когда выделение выполнено, можно произвести удаление любым из трех способов, которые мы описывали выше. Удалены будут все выбранные элементы.
  • Способ 5: удаление пустых ячеек

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

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

    Запускается окно перехода. В нем следует щелкнуть по кнопке «Выделить…», размещенной в его нижнем левом углу.

    После этого открывается окно выделения групп ячеек. В нем следует установить переключатель в позицию «Пустые ячейки», а затем щелкнуть по кнопке «OK» в нижнем правом углу данного окна.

    Как видим, после выполнения последнего действия все пустые элементы в указанном диапазоне были выделены.

  • Теперь нам остается только произвести удаление этих элементов любым из вариантов, которые указаны в первых трех способах данного урока.
  • Существуют и другие варианты удаления пустых элементов, более подробно о которых говорится в отдельной статье.

    Как видим, существует несколько способов удаления ячеек в Excel. Механизм большинства из них идентичен, поэтому при выборе конкретного варианта действий пользователь ориентируется на свои личные предпочтения. Но стоит все-таки заметить, что быстрее всего выполнять данную процедуру можно при помощи комбинации горячих клавиш. Особняком стоит удаление пустых элементов. Данную задачу можно автоматизировать при помощи инструмента выделения ячеек, но потом для непосредственного удаления все равно придется воспользоваться одним из стандартных вариантов.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Источник

    Adblock
    detector

    Понравилась статья? Поделить с друзьями:

    А вот еще интересные статьи:

  • Как удалить клетку в excel
  • Как удалить китайский word
  • Как удалить квадратики в excel
  • Как удалить карты xml в excel
  • Как удалить картинки в excel разом

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии