| 
    
     |  | 初めて質問させていただきます。 ぜひ皆さんのお知恵をお借りしたく、よろしくお願いいたします。(Mougにも同じ質問をしていますが、どなたからも回答がいただけていないため、こちらにも投稿させていただきました。)
 
 図形の曲線を使って、波線を描画しています。下記マクロにてExcel2003、2010では問題なく描画できているのですが、2007では、図形が大きくなってしまい、波線になりません。(たとえば、Xtopが350だったとしても左上が0,0のところに行ってしまいます。
 よろしくお願いいたします。
 
 一旦、曲線で始点と終点のみの線を引き、頂点の追加で波線としています。頂点を追加すると図形が大きくなってしまいます。
 下記はそのプログラム全てです。
 2003、2010では問題なく動きます。(2003と2010では、頂点追加時のインデックスを変更しています。これは、2010でエラーとなるのを回避するためです。)
 
 
 Sub Namisen(Xtop, Ytop, Xbotm, Ybotm, myColor)
 
 W = Xbotm - Xtop '幅
 H = Ybotm - Ytop '高さ
 Pol = H / Abs(H) '極性(戻り線の場合にマイナスとなる。)
 P = 4 '波線のピッチ
 Version = Application.Version
 
 
 With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, Xtop, Ytop)
 .AddNodes msoSegmentCurve, msoEditingAuto, Xbotm, Ybotm
 .ConvertToShape.Select '書き始めと終りを描画
 End With
 Selection.ShapeRange.Line.ForeColor.SchemeColor = myColor
 
 
 For i = 1 * Pol To H / P Step 1 * Pol
 Pi = P * i
 Px = P * 0.6
 
 If Version < 12 Then
 C = 3 * i * Pol - 2 ' C=1,4,7,10,13,16,19・・・ ・
 '波を追加  オートシェイプ→線→曲線(描画)右クリック 頂点の編集→頂点の追加
 Else
 C = Abs(i)
 End If
 If i Mod 2 = 0 Then
 Selection.ShapeRange.Nodes.Insert C, msoSegmentCurve, msoEditingAuto, _
 Xtop + (i * W * P / H) - Px, Ytop + Pi
 Else
 Selection.ShapeRange.Nodes.Insert C, msoSegmentCurve, msoEditingAuto, _
 Xtop + (i * W * P / H) + Px, Ytop + Pi
 End If
 Next i
 
 End Sub
 
 |  |