Спецы, подскажите. Можно ли при выводе текста тектстбокса в ячейку листа экселя, сделать разные фрагменты текста разного размера и "жирности" К примеру ТextBox="Иван Иванов", при этом в ячейке должно получиться Сеlls(1,1)= "Иван Иванов" и "Иванов" Другим размером шрифта (Большего). Или формат текста буде таким каким задан в ячейке (1, 1) по умолчанию. Вручную изменить размер шрифта фрагмента ячейки вроде прокатывает.
Спецы, подскажите. Можно ли при выводе текста тектстбокса в ячейку листа экселя, сделать разные фрагменты текста разного размера и "жирности" К примеру ТextBox="Иван Иванов", при этом в ячейке должно получиться Сеlls(1,1)= "Иван Иванов" и "Иванов" Другим размером шрифта (Большего). Или формат текста буде таким каким задан в ячейке (1, 1) по умолчанию. Вручную изменить размер шрифта фрагмента ячейки вроде прокатывает.Skorpika
Там по итогу получается текстбох из 20-30 строк (шрифт прямой 10 размера), и вот последняя - подпись начальника "Самый главный начальник ____________ Иванов И.И." (вот ее бы шрифт 12, кривой и жирный). И отделить её от текста пока нет возможности. [moder]Читаем Правила форума. Прикладываем файл с примером[/moder]
Там по итогу получается текстбох из 20-30 строк (шрифт прямой 10 размера), и вот последняя - подпись начальника "Самый главный начальник ____________ Иванов И.И." (вот ее бы шрифт 12, кривой и жирный). И отделить её от текста пока нет возможности. [moder]Читаем Правила форума. Прикладываем файл с примером[/moder]Skorpika
Сообщение отредактировал Skorpika - Воскресенье, 28.12.2014, 18:35
нет проблем Последнюю строчку с Ивановым сделать бы побольше и пожирнее. Разнести по разным боксам или по разным ячейкам в листе пока нет возможности.
нет проблем Последнюю строчку с Ивановым сделать бы побольше и пожирнее. Разнести по разным боксам или по разным ячейкам в листе пока нет возможности.Skorpika
Запишите макрорекордером форматирование куска текста, при помощи instrrev найдите последнюю "." , и с этого места примените записанное.
[vba]
Код
'делает "жирным" текст после последней "точки" в ячейке. Принимает в качестве аргумента ячейку. Sub setBold(rCell As Range) Dim strt& With rCell strt = InStrRev(.Value, ".") + 1 If strt > 0 Then .Characters(Start:=strt, Length:=Len(.Value)).Font.FontStyle = "полужирный" End With End Sub
'Пример использования Sub setBoldFirstCell() setBold ActiveCell End Sub
[/vba]
Запишите макрорекордером форматирование куска текста, при помощи instrrev найдите последнюю "." , и с этого места примените записанное.
[vba]
Код
'делает "жирным" текст после последней "точки" в ячейке. Принимает в качестве аргумента ячейку. Sub setBold(rCell As Range) Dim strt& With rCell strt = InStrRev(.Value, ".") + 1 If strt > 0 Then .Characters(Start:=strt, Length:=Len(.Value)).Font.FontStyle = "полужирный" End With End Sub
'Пример использования Sub setBoldFirstCell() setBold ActiveCell End Sub
Private Sub CommandButton1_Click() Dim iStart&, sSearchString With Sheets("Лист1") .Cells(1, 1) = TextBox1.Value sSearchString = "Заместитель чегото там" If .Cells(1, 1) Like "*" & sSearchString & "*" Then iStart = InStr(.Cells(1, 1).Value, sSearchString) With .Cells(1, 1).Characters(Start:=iStart, Length:=Len(.Cells(1, 1).Value) - iStart + 1).Font .Bold = True .Italic = True .Size = 12 End With End If .Range("A1:C3").PrintOut Copies:=1 End With End Sub
Private Sub CommandButton1_Click() Dim iStart&, sSearchString With Sheets("Лист1") .Cells(1, 1) = TextBox1.Value sSearchString = "Заместитель чегото там" If .Cells(1, 1) Like "*" & sSearchString & "*" Then iStart = InStr(.Cells(1, 1).Value, sSearchString) With .Cells(1, 1).Characters(Start:=iStart, Length:=Len(.Cells(1, 1).Value) - iStart + 1).Font .Bold = True .Italic = True .Size = 12 End With End If .Range("A1:C3").PrintOut Copies:=1 End With End Sub
Спс за рекодер. instrrev - к сожалению для меня пока с другой планеты, а вот посчитать количество знаков в ячейке (оно всегда переменное), и изменить исключительно последние требуемые (а их количество с конца одинаково) это уже вроде решаемо. попробую. кстати, как посчитать кол-во знаков в ячейке? [vba]
Код
Sub Макрос2() ' ' Макрос2 Макрос ' Макрос записан 28.12.2014 (SkorpikaCom) '
'
With Cells(13, 1).Characters(Start:=1, Length:=33).Font .Name = "Times New Roman" .FontStyle = "курсив" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With With Cells(13, 1).Characters(Start:=34, Length:=105).Font .Name = "Times New Roman" .FontStyle = "полужирный курсив" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With End Sub
[/vba]
Спс за рекодер. instrrev - к сожалению для меня пока с другой планеты, а вот посчитать количество знаков в ячейке (оно всегда переменное), и изменить исключительно последние требуемые (а их количество с конца одинаково) это уже вроде решаемо. попробую. кстати, как посчитать кол-во знаков в ячейке? [vba]
Код
Sub Макрос2() ' ' Макрос2 Макрос ' Макрос записан 28.12.2014 (SkorpikaCom) '
'
With Cells(13, 1).Characters(Start:=1, Length:=33).Font .Name = "Times New Roman" .FontStyle = "курсив" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With With Cells(13, 1).Characters(Start:=34, Length:=105).Font .Name = "Times New Roman" .FontStyle = "полужирный курсив" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With End Sub
RAN, спс за помощь в прошлые разы, но сейчас тут твой ответ для меня пока на клингонском. Решил пока как смог Len(Cells(13, 1)) - считает знаки в ячейке, соответственно
.... Cells(13, 1).Characters(Start:=..., Length:=....).Font.... Длинна Х старт Len(Cells(13, 1))-X (X=надо посчитать кол-во символов в последней строке) кстати, ересь с фэлсами в коде я так понимаю можно убрать?
RAN, спс за помощь в прошлые разы, но сейчас тут твой ответ для меня пока на клингонском. Решил пока как смог Len(Cells(13, 1)) - считает знаки в ячейке, соответственно
.... Cells(13, 1).Characters(Start:=..., Length:=....).Font.... Длинна Х старт Len(Cells(13, 1))-X (X=надо посчитать кол-во символов в последней строке) кстати, ересь с фэлсами в коде я так понимаю можно убрать?Skorpika
Сообщение отредактировал Skorpika - Воскресенье, 28.12.2014, 21:44