AW: Inhalt von Textfeldern (mit Formeln) ersetzen
29.08.2016 17:45:54
Textfeldern
Hi Janek,
zum Stichwort Excel formeleditor vba gibt die Recherche nichts recht brauchbares her.
Also habe ich den Makrorekorder angeworfen und in TB2 (ab G5) die 37 durch 39 ersetzt; aufgezeichnet wird dann so was:
Option Explicit
Sub Makro1()
' Makro1 Makro
ActiveSheet.Shapes.Range(Array("TextBox 7")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _
"1. Berechne das folgende Integral: ?2?5?7?+39 ?"
Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 53).ParagraphFormat. _
FirstLineIndent = 0
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 15).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
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(16, 21).Font
.BaselineOffset = 0
.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
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(37, 1).Font
.BaselineOffset = 0
.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
.Italic = msoTrue
.Name = "Cambria Math"
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(38, 1).Font
.BaselineOffset = 0
.Bold = msoFalse
.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
.Italic = msoTrue
.Name = "Cambria Math"
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(39, 1).Font
.BaselineOffset = 0
.Bold = msoFalse
.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
.Italic = msoTrue
.Name = "Cambria Math"
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(40, 1).Font
.BaselineOffset = 0
.Bold = msoFalse
.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
.Italic = msoTrue
.Name = "Cambria Math"
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(41, 1).Font
.BaselineOffset = 0
.Bold = msoFalse
.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
.Italic = msoTrue
.Name = "Cambria Math"
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(42, 5).Font
.BaselineOffset = 0
.Bold = msoFalse
.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
.Italic = msoTrue
.Name = "Cambria Math"
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(47, 1).Font
.BaselineOffset = 0
.Bold = msoFalse
.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
.Italic = msoTrue
.Name = "Cambria Math"
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(48, 5).Font
.BaselineOffset = 0
.Bold = msoFalse
.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
.Italic = msoTrue
.Name = "Cambria Math"
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(53, 1).Font
.BaselineOffset = 0
.Bold = msoFalse
.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
.Italic = msoTrue
.Name = "Cambria Math"
End With
Range("K8").Select
End Sub
Ich denke, daraus kannst Du Dir einen Ansatz basteln: Du mußt nur aufpassen, denn z.B. !#! (ich spare mir die kleiner/größer) hat 3 Zeichen, "1." nur zwei - damit verschieben sich die Sachen um ein Zeichen nach links.
Aus Zeitmangel kümmere ich mich jetzt nicht selbst darum; mit "VBA gut" wird es schon gehen, hoffe ich.
Schöne Grüße,
Michael