Ru-Board.club
← Вернуться в раздел «Программы»

» Excel FAQ (часть 5)

Автор: oshizelly
Дата сообщения: 20.06.2010 22:54
LaCastet
Выяснилась одна неприятная вещь: в этом окошке невозможно пользоваться клавишами навигации. Жму, скажем, стрелку влево - и вместо того, чтобы передвинуть влево курсор, встсвляется ссылка на ячейку. Это никак не лечится?
И, кстати, многострочным его никак нельзя сделать?
Автор: gizmozx
Дата сообщения: 21.06.2010 08:16
Добрый день.
Можно отключить автозамену в Excel 2007 на совсем.
Чтоб не заменялись цифры 03-05 на дату.
Автор: oshizelly
Дата сообщения: 21.06.2010 08:43
И еще вопрос, на который не удалось найти ответа, несмотря на усердное штудирование мануала: есть ли в сабже какая-то возможность увеличить/уменьшить размера шрифта выделенного текста относительно текущего, скажем, на 1 пункт? Такая команда есть в MS Word и во многих других текстовых процессорах...
Автор: JoNIK13
Дата сообщения: 21.06.2010 10:42
А
Цитата:
есть ли в сабже какая-то возможность увеличить/уменьшить размера шрифта выделенного текста относительно текущего, скажем, на 1 пункт?

А в чем проблема? Выделяешь нужный текст, тольно не в ячейке, а в строке формул, и издеваешься над ним как хочешь, хоть цвет, хоть размер.
Или я не так понял твой вопрос?
Автор: oshizelly
Дата сообщения: 21.06.2010 16:32
JoNIK13
Цитата:
А в чем проблема? Выделяешь нужный текст, тольно не в ячейке, а в строке формул, и издеваешься над ним как хочешь, хоть цвет, хоть размер.

Речь не совсем об этом. MS Word и многие другие текстовые процессоры позволяют изменить размер шрифта относительно текущего, скажем, уменьшить или увеличить на 1 пункт. Во-первых, это намного удобнее и быстрее, чем выставлять размер вручную. Во-вторых, так можно сохранить в выделенных ячейках разные шрифты. Скажем, в одной из выделенных ячеек шрифт 8 пунктов, Arial, а в другой - 20, Courier New. После применения команды "увеличить шрифт на 1 пункт" шрифт станет, соответственно, 9 и 21, причем начертание тоже не изменится. А обычным форматированием такого не сделаешь.
Автор: JoNIK13
Дата сообщения: 21.06.2010 19:38
ААА!!! Сорри! Я сам о таком не знал!
Автор: kimtan
Дата сообщения: 21.06.2010 22:33
oshizelly
В 2007-ом эта опция присутствует, в 2003 - непомню.
Автор: oshizelly
Дата сообщения: 22.06.2010 07:56
kimtan
Цитата:
В 2007-ом эта опция присутствует, в 2003 - непомню.

А где именнно находится эта опция относительного увеличенияя/уменьшения размера шрифта в 2007-м?
Автор: ALeXkRU
Дата сообщения: 22.06.2010 08:40
oshizelly
где-то тут:

Автор: SERGE_BLIZNUK
Дата сообщения: 22.06.2010 10:02
ALeXkRU
Это НЕ РАБОТАЕТ.

если я правильно понял автора вопроса, ему нужно увеличить текст на один пункт
ну, в одной ячейке текст может быть написан разным размером. в Word есть возможность увеличить шрифт на один пункт, не зависимо от того, какого он сейчас (если он 10 - станет 11, а если в этом же выделении есть размера 15, то станет 16)
Это очень удобно.

Excel и Word изначально делали АБСОЛЮТНО разные команды разработчиков. Поэтому, думаю, что в Excel этой возможности (увеличить/уменьшить шрифт на один пункт) просто нет!
Автор: oshizelly
Дата сообщения: 22.06.2010 10:15
ALeXkRU
SERGE_BLIZNUK

Цитата:
ну, в одной ячейке текст может быть написан разным размером. в Word есть возможность увеличить шрифт на один пункт, не зависимо от того, какого он сейчас (если он 10 - станет 11, а если в этом же выделении есть размера 15, то станет 16)

Судя по картинке, это именно то, о чем я спрашивал: в MS Word эта команда представлена именно такими же иконками на панели инструментов.
Вот только в моем Excel 2003 ничего похожего нет И через макрос тоже никак не решается?
Автор: ALeXkRU
Дата сообщения: 22.06.2010 12:33
oshizelly
в любом excel-е оно есть просто, нужно вытащить:
меню Сервис/Настройка/Команды и нужные кнопки перетащить на панель...


другое дело, что в Ехсеl-е (в отличие от ворда) он подгоняет все шрифты под один..
Автор: oshizelly
Дата сообщения: 22.06.2010 13:05
ALeXkRU

Цитата:
в любом excel-е оно есть просто, нужно вытащить
другое дело, что в Ехсеl-е (в отличие от ворда) он подгоняет все шрифты под один..


Да, действительно забавно. В одной ячейке шрифт 10 pt, в другой 20 pt. Выделяю обе, жму кнопку "Увеличить размер шрифта" - и... оп-ля: шрифты в обеих ячейках стали 11 pt, то есть, один он увеличил, а другой - уменьшил. То есть, логика такая: результат исполнения команды определяется размером шрифта в первой (слева или сверху) ячейке, а все остальные ячейки автоматически получают тот же итоговый размер шрифта. По-моему, чистый баг, но MS, скорее всего, сажет, что фича

В любом случае, спасибо за подсказку!
Автор: ferias
Дата сообщения: 23.06.2010 00:06
[more=код:]
Sub M_1()
Dim i As Long, ind As String, c As Range
ind = Application.InputBox(Prompt:="", _
Title:="На сколько единиц изменить размер?", Default:="-1", Type:=1)
For Each c In Selection.Cells
If CDec(Len(c.Value)) = 0 Then
Else
If ind = False Then Exit Sub
For i = 1 To CDec(Len(c.Value))
With c.Characters(Start:=i, Length:=1).Font
.Size = .Size + CDec(ind)
End With
Next i
End If
Next
End Sub
[/more] изменяет размер каждой буквы, в каждой выделленной ячейке
Автор: SERGE_BLIZNUK
Дата сообщения: 23.06.2010 07:26
ferias,
Спасибо!
Великолепно!

Обязательно пригодится в хозяйстве! :)

Автор: oshizelly
Дата сообщения: 23.06.2010 10:28
ferias

Цитата:
код: изменяет размер каждой буквы, в каждой выделленной ячейке

Шаман, однако!
А можно этот код модифицировать, чтобы он сам менял размер всех шрифтов в выделенном тексте без дополнительного запроса? Конечно, нажать лишний раз на Enter не проблема, но всегда хочется большего.

Кстати, заметил странную вещь: этот макрос (и некоторые другие тоже) обнуляют список последних изменений. То есть, после применения макроса становится невозможной отмена внесенных им изменений, а также и всех более ранних. Затем Undo опять становится активным для всех последующих изменений - но только до применения следующего макроса.
Это общий баг MS Excel или я сам у себя что-то накрутил?
Автор: LaCastet
Дата сообщения: 23.06.2010 10:39
oshizelly

Цитата:
заметил странную вещь: этот макрос (и некоторые другие тоже) обнуляют список последних изменений

Это любой макрос.
Автор: oshizelly
Дата сообщения: 23.06.2010 11:00
И еще на ту же тему форматирования шрифтов. В сабже можно вытащит на панель кнопку Clear Formating, значит, имеется соответствующая внутренняя команда. А как можно на эту команду повесть хоткей (может, через макрос, или через настройки какие)?
Автор: ALeXkRU
Дата сообщения: 23.06.2010 11:21
oshizelly

Цитата:
А как можно на эту команду повесть хоткей

а справка на этот счет ничего разве не говорит?
что-нибудь вроде "назначить сочетание клавиш"...
Автор: oshizelly
Дата сообщения: 23.06.2010 14:45
ALeXkRU

Цитата:
а справка на этот счет ничего разве не говорит?
что-нибудь вроде "назначить сочетание клавиш"...

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


Автор: ferias
Дата сообщения: 23.06.2010 16:11
oshizelly

Цитата:
А можно этот код модифицировать,

Просто мне кажется, что этот макрос может и увиличить, и уменьшить, причем в количество раз заданное пользователем. А в вашем случаи, нужно использовать два макроса, и при этом, увиличивать или уменьшать, можно будет, к примеру на еденицу. Опишите подробнее суть вашего вопроса?
Автор: oshizelly
Дата сообщения: 23.06.2010 17:56
ferias

Цитата:
Просто мне кажется, что этот макрос может и увиличить, и уменьшить, причем в количество раз заданное пользователем. А в вашем случаи, нужно использовать два макроса, и при этом, увиличивать или уменьшать, можно будет, к примеру на еденицу.

Да, я как раз это и имел в виду. Ваш макрос очень изящен и удобен, поскольку позволяет пользователю самому задать число пунктов уменьшения/увеличения шрифта. Но НАРЯДУ с этим макросом (не вместо него!) было бы неплохо иметь парочку макросов, которые автоматически изменяли бы размер шрифта на ту величину, которую данный пользователь использует чаще всего. Например, для меня в 70% случаев это команда "увеличить размер шрифта выделенного текста на 2 пункта". А в остальных 30% случаев как раз пригодится ваш первый макрос с гибкой возможностью выбора.
Автор: ferias
Дата сообщения: 24.06.2010 01:35
Да бы не возникало вопросов:
- открываем Exel
- нажимаем Alt + F11 (активируем редактор VBA)
- нажимаем Ctrl + R (активируем вкладку Project-VBAProject)
- активируем двойным щелчом "PERSONAL.xls" ***
- активируем двойным щелчом "Эта книга" в "PERSONAL.xls"
- копируем этот [more=код]Private Sub Workbook_Open()
With MenuBars("Worksheet").Menus.Add(Caption:="Изменить размер...")
.MenuItems.Add Caption:="Уменьшить на 2-е еденици", OnAction:="PERSONAL.xls!Diminuir"
.MenuItems.Add Caption:="Увеличитьить на 2-е еденици", OnAction:="PERSONAL.xls!Aumentar"
.MenuItems.Add Caption:="Произвольно", OnAction:="PERSONAL.xls!Alterar_altura"
End With
End Sub[/more] в "Эта книга"
- активируем двойным щелчом "Module1" в "PERSONAL.xls"
- копируем этот [more=код]Private Sub Aumentar()
Dim r As Variant
r = 2' по желанию можно изменить 2 на любое другое число
Call alterar_1(r)
End Sub
Private Sub Diminuir()
Dim r As String
r = "-2"' по желанию можно изменить 2 на любое другое число
Call alterar_1(r)
End Sub
Private Sub Alterar_altura()
Dim i As Long, r As String, c As Range
r = Application.InputBox(Prompt:="", _
Title:="На сколько едениц изменить размер?", Default:="-1", Type:=1)
Call alterar_1(r)
End Sub
Private Sub alterar_1(r)
Dim i As Long, c As Range
For Each c In Selection.Cells
If CDec(Len(c.Value)) = 0 Then
Else
If r = False Then Exit Sub
For i = 1 To CDec(Len(c.Value))
With c.Characters(Start:=i, Length:=1).Font
.Size = .Size + CDec(r)
End With
Next i
End If
Next
End Sub[/more] в "Module1" или влюбой другой модуль книги "PERSONAL.xls"
- обязательно сохраняем все изменения в "PERSONAL.xls"
- закрываем редактор VBA и Exel
- открываем Exel
- ищем надстройку "Изменить размер"
- пользуемся на здоровье



*** Инструкция для тех у кого во вкладке Project-VBAProject нет книги PERSONAL.xls
- в Exel выберете команду Сервис или Вид (в зависимости от версии) -> Макрос -> Начать запись
- на запрос "сохранить в:" выберете "Личная книга макросов"
- внесите любые данные в любую из ячеек
- выберете команду Сервис или Вид (в зависимости от версии) -> Макрос -> Остановить запись
- файл PERSONAL.xls не существует, пока вы не запишите в него хотя бы один макрос (получается что выше изложенные действия создают файл PERSONAL.xls)
Автор: oshizelly
Дата сообщения: 25.06.2010 10:53
ferias
Однако весьма доходчиво. Спасибо!
Позволил себе вынести ссылку на этот пост в шапку топика. Если погорячился, пусть местные гуру исправят.
Автор: oshizelly
Дата сообщения: 25.06.2010 14:07
LaCastet выложил на предыдущей странице замечательный макрос для упрощенного добавления комментариев. Вот только есть у него один большой недостаток: в диалоговом окне создания комментария невозможно использовать ни одну из клавиш навигации. Жму, скажем, стрелку влево - и вместо того, чтобы передвинуть влево курсор, вставляется ссылка на ячейку. Может, это как-то все же лечится, скажем, если держать нажатым Ctrl или еще что-то в этом роде (я много вариантов перепробовал, но не нашел). Или код немного подправить?
Автор: vlth
Дата сообщения: 25.06.2010 14:47
oshizelly
Эта ветка не по макросам, вообще-то... (см. шапку ниже созданной Вами ссылки на 'инструкцию')
[more=Подправил]
Код: Dim kom As String, c As Range
kom = InputBox("", "Введите комментарий", "пример")
For Each c In Selection.Cells
If c.Comment Is Nothing Then
c.AddComment kom
Else
c.Comment.Text c.Comment.Text & vbLf & kom
End If
Next
Автор: oshizelly
Дата сообщения: 26.06.2010 10:18
vlth

Цитата:
Подправил

Ну вот нет в мире совершенства... Теперь с этим исправленным кодом другая проблема: при вводе с клавы или вставке из буфера символов, содержащих диакритические знаки, например, немецкие буквы с умляутами Ä, Ö, Ü и пр., они почему-то отображаются и вставляются в документ в виде букв кириллицы. А с аналогичным макросом LaCastet такой проблемы не было. Неужели проблема навигации в стоке ввода как-то связана с используемой кодировкой
Как гласит народная пословица, нос вытащил - всей птичке пропасть.
Автор: vlth
Дата сообщения: 26.06.2010 11:29
oshizelly

Цитата:
Ну вот нет в мире совершенства... Теперь с этим исправленным кодом другая проблема...

Значит нужно свою форму, содержащую окно ввода, делать.
Автор: oshizelly
Дата сообщения: 26.06.2010 17:05
vlth

Цитата:
Значит нужно свою форму, содержащую окно ввода, делать.

Конечно, нужно... Вот только где бы для этого мозгов одолжить на время... Если бы я мог сам писать макросы в VBA или хотя бы понимать, что означают все эти букофки и цыферки в готовом коде, разве ж я стал бы просить других это сделать? Вот, например, я пытался сравнить эти два макроса, там различий всего пару строк и символов, но что эти символы обозначают и какие именно из них отвечают за кодировку, а какие - за навигацию? Пробовал это выяснить путем проб и ошибок, но оно как-то не хочет выясняться
Автор: vlth
Дата сообщения: 26.06.2010 18:34
oshizelly
Цитата:
Вот, например, я пытался сравнить эти два макроса, там различий всего пару строк и символов
При сходстве записи 'InputBox' в первом и во втором случае применены разные вещи:
метод Excel и функция VBA.

Цитата:
Пробовал это выяснить путем проб и ошибок, но оно как-то не хочет выясняться
Не пробовали выяснить это в соответствующей теме форума?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121

Предыдущая тема: Trojan Remover 6.81 Build 2594


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.