Excel VBAによるグラフィックス描画の例
点による作図 − 原子軌道の表示
各格子点の電子密度の値に応じて色の階調をRGBそれぞれ256段階で変えて点を表示します。
結果の図が表示されるまで、数分程度かかります。「応答なし」の状態になった場合もしばらくお待ちください。
※ 格子点の数を増やす(DIM_X,DIM_Yの値を大きくする)と、お使いのパソコンの環境によってはExcelが異常終了する場合があります。
Sub Draw_AOMap() Const DIM_X = 100 Const DIM_Y = 100 Const MAX_GRAD = 255 Const ELD = 0.000001 ' threshold Dim CR, CG, CB As Integer Dim r, dx As Single Dim x, y As Single Dim phi, rho As Single Dim i, j As Integer Call InitializeGraphics Call DrawRectangleFill(0, 0, DIM_X, DIM_Y, 0) r = 15 ' 計算範囲(ボーア単位) dx = r * 2 / DIM_X y = -r For i = 1 To DIM_Y Cells(13, 1).Value = i ' 実行中のループ回数の表示 y = y + dx x = -r For j = 1 To DIM_X x = x + dx r = Sqr(y*y + x*x) phi = 0.00985 * Exp(-r / 3) * x * y rho = phi * phi CG = rho / ELD If CG > MAX_GRAD Then CG = MAX_GRAD If phi < 0 Then CR = 0 Else CR = CG Call PointSet(j, i, RGB(CR, CG, CB)) Next j Next i End Sub