TextFrame2.WordWrap = True(自動改行オン)の状態でシェイプ内テキストが自動改行されているかを
Len(TextFrame2.TextRange.Text)とLen(TextFrame2.TextRange.Lines(1))の比較で
判定出来たので、改行されていたら
TextFrame2.WordWrap = False(自動改行オフ)にしてTextEffect.PresetShape = 1(四角変形)に設定。
改行無しかつTextEffect.PresetShape = 1だったらいったんシェイプ消してaddShapeで作り直し
という感じで文字数が少ない時は通常表示、多い時は幅圧縮表示するコードいちおう書けました。ありがとうございます。