И сколько я ей пользуюсь - столько и мучаюсь, ибо если в Excel 2003 функция рисует нормальную кнопку (как на скриншоте в статье), то в Excel 2007 на выходе получается безобразие (толстая рамка вокруг кнопки, цвет текста белый, и т.п.)
Почему так происходит - понимаю, - Microsoft в 2007-й версии Excel что-то там наизменяла в плане стиля автофигур (что именно - до сих пор толком не разобрался)
Пытался сам модернизировать код - добавляя всякие TintAndShade - но результата не добился (чтобы в 2007-м кнопки выглядели также, как в 2003-м)
Может, кто подскажет, как изменить код? (макрорекордер в 2007-м ничего не пишет. Может, обладателям 2010-го, к коим я пока не отношусь, повезло больше?)
Ну толщину линии можно изменить так: With Selection.ShapeRange.Line .Visible = msoTrue .Weight = 0.25 End With а уж какие образцы заливки нужны... Короче, вот что выдал рекордер 2010: Sub Макрос2() ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 240, 75, 46.5, 14.25). _ Select With Selection.ShapeRange.Fill .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorAccent1 .ForeColor.TintAndShade = 0.3399999738 .ForeColor.Brightness = 0 .BackColor.ObjectThemeColor = msoThemeColorAccent1 .BackColor.TintAndShade = 0.7649999857 .BackColor.Brightness = 0 .TwoColorGradient msoGradientHorizontal, 1 End With Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Line.Visible = msoTrue With Selection.ShapeRange.Line .Visible = msoTrue .Weight = 0.25 End With With Selection.ShapeRange.Fill .Visible = msoTrue .PresetGradient msoGradientHorizontal, 1, msoGradientOcean End With Range("F7").Select End Sub
И сколько я ей пользуюсь - столько и мучаюсь, ибо если в Excel 2003 функция рисует нормальную кнопку (как на скриншоте в статье), то в Excel 2007 на выходе получается безобразие (толстая рамка вокруг кнопки, цвет текста белый, и т.п.)
Почему так происходит - понимаю, - Microsoft в 2007-й версии Excel что-то там наизменяла в плане стиля автофигур (что именно - до сих пор толком не разобрался)
Пытался сам модернизировать код - добавляя всякие TintAndShade - но результата не добился (чтобы в 2007-м кнопки выглядели также, как в 2003-м)
Может, кто подскажет, как изменить код? (макрорекордер в 2007-м ничего не пишет. Может, обладателям 2010-го, к коим я пока не отношусь, повезло больше?){/post}{/quote}
примерно твоя кнопка (по памяти только надпись "eeeee") записанная рекордером 2010
Sub Макрос1()
ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 238.5, 45.75, 72, 72). _ Select Selection.ShapeRange.ScaleHeight 0.3958333333, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ScaleWidth 1.25, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ShapeStyle = msoShapeStylePreset25 Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "ееее" With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 4). _ ParagraphFormat .FirstLineIndent = 0 .Alignment = msoAlignLeft End With With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 4).Font .NameComplexScript = "+mn-cs" .NameFarEast = "+mn-ea" .Fill.Visible = msoTrue .Fill.ForeColor.ObjectThemeColor = msoThemeColorDark1 .Fill.ForeColor.TintAndShade = 0 .Fill.ForeColor.Brightness = 0 .Fill.Transparency = 0 .Fill.Solid .Size = 11 .Name = "+mn-lt" End With Range("H5").Select End Sub