エクセルde熱流体 ー ベクトル表示


目次

もどる


折れ線グラフを利用して,ベクトルを表示する

この方法は,手軽ですが,データの並べ替えが面倒です.

一般にベクトルで表示したいもとのでーたのならびは,

X座標 Y座標 U速度 V速度
1 1 5 1
1 2 8 -1

のように,ベクトルの基点の座標と,速度が並んでいます.これを,

X座標 Y座標
X座標+U速度 Y座標+V速度
空き 空き
X座標 Y座標
... ...

と,二列に折りたたんで並べ,この二列を選択して散布図から折れ線グラフを作成すると,あら不思議,ちゃんとベクトルが(線だけですが)表示されます.ポイントは,データの組毎に一行データの入っていない行を入れることで,線を分断することです.エクセルの設定によっては,データの空きがあっても線をつないでしまいますので,設定を確認してください.

Top


VBAで矢印を表示する

やはり,こんな子供だましではいやだという場合は,VBAでプログラムを作成します.

VBAの開発方法は,どっかで調べてください.これは,熱工学部門の講習会のネタとしてあわてて作成したものですが,とりあえずベクトルを確認することはできます.

Sub VectorPlot()
'
' VectorPlot Macro
' 作成者:小林健一
' 作成日:2005年7月5日
'
' 座標系:左上が原点,X:右へ向かって正,Y:VOffsetから上に向かって正
'
' すでに描かれている図形の消去
ActiveSheet.Shapes.SelectAll
Selection.Delete

UnitScale = 15 '画面上で,1が何ピクセルか
UnitVector = 1 '基準ベクトルの長さ
VOffset = 200 '垂直方向のオフセット

' ベクトルの描画
For i = 1 To Selection.Rows.Count
x1 = ActiveCell.Offset(i - 1, 0).Value * UnitScale
y1 = ActiveCell.Offset(i - 1, 1).Value * UnitScale
x2 = ActiveCell.Offset(i - 1, 2).Value / UnitVector * UnitScale
y2 = ActiveCell.Offset(i - 1, 3).Value / UnitVector * UnitScale

With ActiveSheet.Shapes.AddLine(x1, VOffset - y1, x1 + x2, VOffset - y1 - y2).Line
.EndArrowheadStyle = msoArrowheadOpen
.EndArrowheadLength = msoArrowheadShort
.EndArrowheadWidth = msoArrowheadNarrow
End With
Next i

End Sub

Top