計算プリントを自動生成する その2 足し算を20問つくろう
はじめに
第2回は「足し算を20問つくろう」です。
第1回で書いたことを前提としているので
まだ読まれていない方はこちらからーーー
手順
- 足し算の計算式を文字列で一つ作る
- それを表示する
- 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桁どうしの足し算」の自動生成を行います。