Thank you so much for this. Reading all your ideas I felt a bit like a someone who has learned the chess rules a day ago and then watches a world championship match :-)
In the end it was Paul's solution I felt close to understanding it and I dared to extract those parts of it I need. So this is what I got:
Option Explicit
Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) As Long
Private Const LOCALE_USER_DEFAULT As Long = &H400
Private Const LOCALE_SDECIMAL As Long = &HE 'decimal sep char, e.g. dot
Property Get DecimalSeperator() As String ' dot
DecimalSeperator = pvtGetInfo(LOCALE_SDECIMAL)
End Property
Function pvtGetInfo(ByVal lInfo As Long) As String
Dim Buffer As String
Dim ret As String
Buffer = String$(256, 0)
ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, Buffer, Len(Buffer))
If ret > 0 Then
pvtGetInfo = Left$(Buffer, ret - 1)
Else
pvtGetInfo = vbNullString
End If
lbl_Exit:
Exit Function
End Function
Sub DecSepProb()
Dim shp As Shape
Dim sld As Slide
'create a stamp
Set sld = Application.ActiveWindow.View.Slide
Set shp = sld.Shapes.AddShape(Type:=msoShapeRectangle, Left:=50, Top:=75, Width:=125, Height:=50)
shp.Fill.ForeColor.RGB = RGB(255, 255, 255)
shp.Line.ForeColor.RGB = RGB(255, 0, 0)
shp.Line.Weight = "1" & DecimalSeperator & "5"
shp.Rotation = "355"
shp.Shadow.Style = msoShadowStyleOuterShadow
shp.Shadow.ForeColor.RGB = RGB(0, 0, 0)
shp.Shadow.Transparency = "0" & DecimalSeperator & "6"
shp.Shadow.Size = "100"
shp.Shadow.Blur = "4"
shp.Shadow.OffsetX = "2" & DecimalSeperator & "1"
shp.Shadow.OffsetY = "2" & DecimalSeperator & "1"
shp.TextFrame.TextRange.Font.Color.RGB = RGB(255, 0, 0)
shp.TextFrame.TextRange.Characters.Text = "Comma"
shp.TextFrame.TextRange.Paragraphs.ParagraphFormat.Alignment = ppAlignCenter
shp.TextFrame.VerticalAnchor = msoAnchorMiddle
shp.TextFrame.TextRange.Font.Size = 14
shp.TextFrame.TextRange.Font.Name = "Arial"
shp.TextFrame.TextRange.Font.Bold = msoTrue
shp.TextFrame.TextRange.Font.Italic = msoFalse
shp.TextFrame.TextRange.Font.Underline = msoFalse
shp.TextFrame.MarginBottom = "3" & DecimalSeperator & "685037"
shp.TextFrame.MarginLeft = "7" & DecimalSeperator & "0866097"
shp.TextFrame.MarginRight = "7" & DecimalSeperator & "0866097"
shp.TextFrame.MarginTop = "3" & DecimalSeperator & "685037"
shp.TextFrame.Orientation = msoTextOrientationHorizontal
End Sub
(It is not the same example as above, but one with line weight, internal margins and shadow settings included, three of the troublemakers.)
And it seems to work.
So, once again, thank you very much, all three of you.