Visioによる作り方の方針

Visioとは

Microsoft Office Visio(マイクロソフト オフィス ビジオ)とは、Microsoft(マイクロソフト)が作成するOffice(オフィス)の中の1つのソフトウェアで、主に製図を行うプログラムです。たとえば次のフローチャートはVisioで作成しました。

Visioによる作成方法の方針

Visioでは、ドラッグ操作などで簡単に線などの1Dシェイプや、四角などの2Dシェイプを追加することができますが、計算尺のように複数の線を精度よく配置する時にはこの方法は不便です。そこでここでは、Visioに標準的に装備されている、Visual Basic for Applications(VBA)を利用して作成します。

操作方法の例として紹介するのは、Windows Vista Home Premium上で動作させたMicrosoft Office Visio 2007 Professional Edition です。Visio 2003やStandard Editionでも同じような操作ができると思います。

計算尺を作成するには、線と文字を書く必要がありますので、実際にどのように書けばいいのかを見てみましょう。

VBAの簡単な練習

Visual Basic Editor の表示

まず、Microsoft Office Visio 2007を起動します。デフォルトのままインストールした場合、「スタート」→「すべてのプログラム」→「Microsoft Office」→「Microsoft Office Visio 2007」で起動できます。

今回はステンシルを利用しないので、どのテンプレートを利用してもいいのですが、ここでは「ファイル」メニュー→「新規作成」→「新しい図面」で新しい図面を作成します。

それでは、早速Visual Basic Editor を起動してみましょう。「ツール」メニュー→「マクロ」→「Visual Basic Editor」とクリックします。すると次のようなウィンドウが表示されます。

これでVisual Basic Editor を表示することができました。

VBAで直線を引く

操作方法

それでは、VBAを利用して、簡単な直線を引いてみましょう。

まず、上の図で選択されている「This Document (図面1)」と書かれているところをダブルクリックしてください。すると次のようにコードを入力するウィンドウが表示されます。

このウィンドウに次のように入力してください。

Visual Basic for Applications (VBA)
Sub DrawLine()
    Dim vs As Shape
    Dim lineWeight As Double
    lineWeight = 0.001
    Set vs = ActivePage.DrawLine(1, 1, 2, 2)
    vs.Cells("LineWeight") = lineWeight
End Sub 

そして、元のVisio のウィンドウで「ツール」メニュー→「マクロ」→「ThisDocument」→「DrawLine」とクリックしてください。

すると、次のように図面に線が追加されます。

 

これでコードから線を引くことができました。

解説

簡単にコードを見てみましょう。

Visual Basic for Applications (VBA)
Sub DrawLine()
    Dim vs As Shape
    Dim lineWeight As Double
    lineWeight = 0.001
    Set vs = ActivePage.DrawLine(1, 1, 2, 2)
    vs.Cells("LineWeight") = lineWeight
End Sub 

ActivePage.DrawLineで、線を引き、vs.Cells("LineWeight")で線の太さを0.001に設定しています。計算尺では細いほうがいいと考え、この値にしました。印刷の具合を見ながら、適度に設定してください。

それでは、ActivePage.DrawLineの詳細を見てみましょう。

Visual Basic for Applications (VBA)
式.DrawLine(xBegin, yBegin, xEnd, yEnd) 

まず、ページの座標の確認をします。Visioではページの左下を原点とし、右にx軸、上にy軸を取り、インチ(1インチ=2.54cm)単位で目盛りを振ります。そして、DrawLineメソッドは点(xBegin, yBegin)と点(xEnd, yEnd)を直線で結びます。

VBAで文字を書く

操作方法

次はVBAから文字を書いてみましょう。先ほどのVisual Basic Editorで、次のコードを追加してください。

Visual Basic for Applications (VBA)
Sub DrawString()
    Dim vs As Shape
    Set vs = ActivePage.DrawRectangle(3, 3, 4, 4)
    vs.Text = "a"
    vs.LineStyle = "Text Only"
    vs.FillStyle = "Text Only"
    vs.Cells("Char.size").Result("pt") = 30
End Sub

そして、先ほどと同じように元のVisio のウィンドウで「ツール」メニュー→「マクロ」→「ThisDocument」→「DrawString」とクリックしてください。すると、次のように文字「a」が追加されます。

解説

文字の絵画についても、簡単にコードを見てみましょう。

Visual Basic for Applications (VBA)
Sub DrawString()
    Dim vs As Shape
    Set vs = ActivePage.DrawRectangle(3, 3, 4, 4)
    vs.Text = "a"
    vs.LineStyle = "Text Only"
    vs.FillStyle = "Text Only"
    vs.Cells("Char.size").Result("pt") = 30
End Sub

まず、ActivePage.DrawRectangle(3, 3, 4, 4)で、対角線が(3, 3), (4, 4)であらわされる2Dオブジェクトの長方形が描かれます。次に、vs.Textに「a」を代入することでテキストを設定し、続けて外枠を消し、最後に文字サイズを30に設定します。

計算尺の作成方法

以上で線と文字を書く方法を紹介しました。次はこれらを利用して実際に計算尺を作成してみます。