滝の音

滝の音

名こそ流れてなお聞こえけれ

計算プリントを自動生成する その2 足し算を20問つくろう

はじめに

第2回は「足し算を20問つくろう」です。
第1回で書いたことを前提としているので
まだ読まれていない方はこちらからーーー

taki-no-oto.hatenablog.com

手順

  1. 足し算の計算式を文字列で一つ作る
  2. それを表示する
  3. 1,2を繰り返す

1は前回行ったので2と3が今回のテーマです。

今回は「手動でやってみる」の段は省略します。

自動でやってみる

書く順番が前後しますが、まず手順3を書いて
次に手順2について説明します。

Sub ひながた()

'------------------------------
'0. 扱う変数の定義
'------------------------------
 Dim N As Integer       '問題数を決める変数
 Dim i As Integer       '繰り返しの制御変数
 Dim str As String      '計算式の文字列
 
'------------------------------
'1. 問題数の指定
'------------------------------
 N = 20
 
 For i = 1 To N
    '------------------------------
    '2. 問題を指定して式を求める
    '------------------------------
    str = Int_Addition_Ver1
 
    '------------------------------
    '3. 出力
    '------------------------------
    Call Insert_Equation(20, 30 * i, str)
 Next

End Sub

Int_Addition_Ver1

こちらは前回説明しています。
taki-no-oto.hatenablog.com

Insert_Equation

計算式の文字列を出力する関数です。
手順の2のやつです。

Function Insert_Equation(left, top, str)
'------------------------------
'計算式をシートに挿入
'------------------------------
 ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, left, top, 0, 0).Select
 Application.CommandBars.ExecuteMso "InsertBuildingBlocksEquationsGallery"
 Selection.Text = str
 Selection.Font.Size = 13
 Selection.ShapeRange.TextFrame2.WordWrap = msoFalse
 Application.CommandBars.ExecuteMso "EquationProfessional"
 
End Function

意味は難しいので、これは呪文として扱います。
Left,topの引数で画面の座標を指定
Strの引数で画面に出力したい文字列を指定します。

何を言っているかわからなくて大丈夫です。
とにかく「画面に計算式を表示する」関数と思ってください。

まとめ

これで計算プリントが作れます。

次は「繰り上がりのない1桁どうしの足し算」の自動生成を行います。