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

原子軌道の表示

ソース・プログラムのダウンロード