【Excel】フローチャートの文字設定を自動化する(前編)

Excel VBA マクロの記録

今回はExcelのフローチャートの図形の文字設定を自動で行うマクロの作り方を解説します。

同じ大きさの図形の書式や配置を1回(1クリック)で済ませることできるなどの効率化になります。 特に「記録したコードの修正方法」も含めて話を進めていきます。

それでは図形の文字設定をマクロの記録でコードを生成する作業を始めます。

図形の作成

「挿入タブ」→「図形」→「フローチャート:判断」で図形を作成します。

図形のサイズは図形を右クリックして「サイズとプロパティ」から「高さ1.87㎝」「幅3.58㎝」で設定します。

続いて図形を右クリックして「テキストの編集」を選択して「If Range(“A1”).Value = 10 Then」と入力します。

ここではまだ文字の設定がデフォルト(初期設定)の状態なので、文字を選択すると文字の一部分だけ表示されています。

マクロの記録

1.「開発タブ」 → 「マクロの記録」を選択します。

2. 図形を選択してフォントを[MSゴシック]にしてフォントサイズを[8]にします。

3. 図形の文字を範囲選択して、マウスを右クリック → [フォント]を選択 → [文字幅と間隔] を選択 → [文字間隔をつめる]にし[OK]ボタンを押します。

図形の文字を範囲選択しないと右クリックのメニューに[フォント]の項目は表示されません。

4. 図形を範囲選択した状態のまま、文字の配置を[上下中央揃え]と[中央揃え]にします。

5.「開発タブ」 → 「記録終了」ボタンを押します。

では、いま作成したプログラムを開きます。「開発タブ」→「コードの表示」でVBEを開いて「標準モジュール」の「Module1」をダブルクリックします。

記録したコードは次のようになっていると思います。

Sub Macro1()
'
' Macro1 Macro
'

'
ActiveSheet.Shapes.Range(Array("Flowchart: Decision 1")).Select
With Selection.ShapeRange.TextFrame2.TextRange.Font
.NameComplexScript = "MS ゴシック"
.NameFarEast = "MS ゴシック"
.Name = "MS ゴシック"
End With
Selection.ShapeRange.TextFrame2.TextRange.Font.Size = 8
With Selection.ShapeRange.TextFrame2.TextRange.Font
.BaselineOffset = 0
.Spacing = -1
End With
Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
Selection.ShapeRange.TextFrame2.TextRange.ParagraphFormat.Alignment = _
msoAlignCenter
End Sub

そして記録したコードを分かりやすく整理すると次のようになります。

Sub Macro1()

ActiveSheet.Shapes.Range(Array("Flowchart: Decision 4")).Select

With Selection.ShapeRange.TextFrame2

.TextRange.Font.NameComplexScript = "MS ゴシック" '特殊な記号などをMSゴシックに設定する。
.TextRange.Font.NameFarEast = "MS ゴシック" '漢字、ひらがな、カタカナなどをMSゴシックに設定する。
.TextRange.Font.Name = "MS ゴシック" 'アルファベットや数字などをMSゴシックに設定する。
.TextRange.Font.Size = 8 '文字サイズを 8ポイントに設定する。
.TextRange.Font.BaselineOffset = 0 '文字の垂直方向の位置を標準に設定します。
.TextRange.Font.Spacing = -1 '文字の間隔が1ポイント狭まります。
.VerticalAnchor = msoAnchorMiddle 'テキストの垂直方向(上下)の配置を中央揃えにします。
.TextRange.ParagraphFormat.Alignment = msoAlignCenter 'テキストの水平方向(左右)の配置を中央揃えにします。

End With

End Sub

エクセルのシートに戻って図形を確認してみると、まだフォントの種類と文字の間隔と文字の位置を設定しただけなので、文字の配置が縦4段で図形の枠内にうまく収まっていない状態なのが分かります。

あとは行間と余白の設定をすると図形の文字設定が完成ですが、それは次回のブログで行います。

NEXT ▷▷▷ Excelのフローチャートの図形の文字設定を自動化する(後編)