표에서 수치를 읽고 수위 레벨을 그리고 싶습니다.

2506 단어 VBA파워 포인트

하고 싶은 일


  • 수족관이 하나 있습니다
  • 수조에는 수위 레벨이 정해져 있다
  • 수위 수준을 정확하게 그리고 싶습니다

  • ↓이런 느낌


    오브젝트명을 정한다


  • ホーム>選択>オブジェクトの選択と表示 열기
  • 오브젝트의 이름을 붙인다(수조=>Aquarium, 수위표=>WaterTable, 선=>Lv3~Lv1)


  • VBA



    VBA
    Sub SettingWaterLvl()
    
        Dim shp As Shape
        Dim WaterTable As Table
        Dim Aquarium, Lv3, Lv2, Lv1 As Shape
    
        ' オブジェクトを設定する
        For Each shp In ActiveWindow.Selection.SlideRange.Shapes
            If shp.Name = "WaterTable" Then
                Set WaterTable = shp.Table
            ElseIf shp.Name = "Aquarium" Then
                Set Aquarium = shp
            ElseIf shp.Name = "Lv1" Then
                Set Lv1 = shp
            ElseIf shp.Name = "Lv2" Then
                Set Lv2 = shp
            ElseIf shp.Name = "Lv3" Then
                Set Lv3 = shp
            End If
        Next
    
        ' 表から水位レベルを読み取る
        Dim TableValues As CellRange
        Set TableValues = WaterTable.Columns.Item(2).Cells
    
        Dim MaxValue, Lv3Value, Lv2Value, Lv1Value, MinValue As Double
        MaxValue = CDbl(TableValues.Item(2).Shape.TextFrame.TextRange.Text)
        Lv3Value = CDbl(TableValues.Item(3).Shape.TextFrame.TextRange.Text)
        Lv2Value = CDbl(TableValues.Item(4).Shape.TextFrame.TextRange.Text)
        Lv1Value = CDbl(TableValues.Item(5).Shape.TextFrame.TextRange.Text)
        MinValue = CDbl(TableValues.Item(6).Shape.TextFrame.TextRange.Text)
    
        Lv3.Top = ((Aquarium.Top + Aquarium.Height) - Aquarium.Top) / (MinValue - MaxValue) * (Lv3Value - MaxValue) + Aquarium.Top
        Lv3.Left = Aquarium.Left
    
        Lv2.Top = ((Aquarium.Top + Aquarium.Height) - Aquarium.Top) / (MinValue - MaxValue) * (Lv2Value - MaxValue) + Aquarium.Top
        Lv2.Left = Aquarium.Left
    
        Lv1.Top = ((Aquarium.Top + Aquarium.Height) - Aquarium.Top) / (MinValue - MaxValue) * (Lv1Value - MaxValue) + Aquarium.Top
        Lv1.Left = Aquarium.Left
    
    End Sub
    

    완성



    좋은 웹페이지 즐겨찾기