표에서 수치를 읽고 수위 레벨을 그리고 싶습니다.
하고 싶은 일
↓이런 느낌
오브젝트명을 정한다
ホーム>選択>オブジェクトの選択と表示
열기 VBA
VBASub 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
완성
Reference
이 문제에 관하여(표에서 수치를 읽고 수위 레벨을 그리고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/135/items/ca8a6e82975a57aa1a98
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
Reference
이 문제에 관하여(표에서 수치를 읽고 수위 레벨을 그리고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/135/items/ca8a6e82975a57aa1a98텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)