tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル グループ化した図形の塗りつぶし
投稿日: 2008/02/29(Fri) 10:36
投稿者hanai
エクセルに立方体の図を描きました。
立方体の図を描く為、色々なページを参考に組み合わせたらやっと描けたのですがこれで良いのでしょうか?
その立方体の上面と右側面になる部分を塗りつぶしたいのですがどうすれば良いのでしょうか?
立方体を積み重ねたり、並べた時に最初の立方体の見えない部分を隠すためです。

TX SY 作図の基準点です
L W H 立方体のサイズです
RE    縮小率です
SYU   種類によって実線又は破線で描く
VB6 XP excel2000
宜しくお願いします。
'立体図
    RX = TX - 0.3 * W * RE - 20
    RY = SY + 0.3 * W * RE + 150
    le = L * RE
    wi = W * RE * 0.5
    hi = H * RE
    With XL.Worksheets(2).Shapes
        With .AddShape(msoShapeRectangle, RX, RY - hi, le - 1, hi - 1)
            .TextFrame.Characters.Text = CS
            
            If SYU = 4 Or SYU = 5 Then
                 .Line.DashStyle = msoLineSquareDot
            Else
                 .Line.DashStyle = msoLineSolid
            End If
        End With
        arr(1) = .Item(.Count).Name
    
        With .AddLine(RX, RY - hi, RX + wi, RY - hi - wi)
        
            If SYU = 4 Or SYU = 5 Then
                 .Line.DashStyle = msoLineSquareDot
            Else
                 .Line.DashStyle = msoLineSolid
            End If
        End With
        arr(2) = .Item(.Count).Name
    
        With .AddLine(RX + wi, RY - hi - wi, RX + wi + le, RY - hi - wi)
        
            If SYU = 4 Or SYU = 5 Then
                 .Line.DashStyle = msoLineSquareDot
            Else
                 .Line.DashStyle = msoLineSolid
            End If
        End With
        arr(3) = .Item(.Count).Name
    
        With .AddLine(RX + le, RY - hi, RX + wi + le, RY - hi - wi)
        
            If SYU = 4 Or SYU = 5 Then
                 .Line.DashStyle = msoLineSquareDot
            Else
                 .Line.DashStyle = msoLineSolid
            End If
        End With
        arr(4) = .Item(.Count).Name
    
        With .AddLine(RX + le, RY, RX + wi + le, RY - wi)
        
            If SYU = 4 Or SYU = 5 Then
                 .Line.DashStyle = msoLineSquareDot
            Else
                 .Line.DashStyle = msoLineSolid
            End If
        End With
        arr(5) = .Item(.Count).Name
    
        With .AddLine(RX + le + wi, RY - wi - hi, RX + wi + le, RY - wi)
        
            If SYU = 4 Or SYU = 5 Then
                 .Line.DashStyle = msoLineSquareDot
            Else
                 .Line.DashStyle = msoLineSolid
            End If
        End With
        arr(6) = .Item(.Count).Name
        .Range(arr).Group
    End With

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。