【Word VBA】漢字探しクイズ作成マクロ▽ソースコード

記事
IT・テクノロジー
HC241122A.png

Option Explicit
Option Base 0
'
Public Sub 漢字探しクイズ作成マクロ()
    Const KFNDLEFT = 100             '描画開始位置X
    Const KFNDTOPP = 100            '      Y
    Const KFNDWIDT = 275           'テキストボックス幅
    Const KFNDHEIG = 240            'テキストボックス高さ
    '
    Const KFNDCOLS = 12             '横文字数
    Const KFNDROWS = 9              '縦段数
    '
    Const KFNDCHR1 = "梅"           '探す 漢字
    Const KFNDCHR2 = "悔"           '惑わす漢字
    '
    Const KFNDFNTN = "MS ゴシック"              'フォント名
    Const KFNDFNTS = 20                                'フォントサイズ
    Const KFNDLNSP = 24                                '改行幅
    '---------------------------------------------------------------------------
    Dim Ip As Integer, Jp As Integer, Kp(1) As Integer
    Dim strDat As String
    Randomize                                                '乱数系列初期化
    Kp(0) = Int((KFNDCOLS - 2) * Rnd) + 1      '乱数で位置を設定
    Kp(1) = Int((KFNDROWS - 2) * Rnd) + 1     '端は除外するよう
    '
    '*文字列作成
    strDat = ""
    For Jp = 0 To KFNDROWS - 1
        For Ip = 0 To KFNDCOLS - 1
            If Ip = Kp(0) And Jp = Kp(1) Then
               strDat = strDat + KFNDCHR1
            Else
              strDat = strDat + KFNDCHR2
            End If
        Next Ip
        strDat = strDat + Chr(10) '
    Next Jp
    '
    '*テキストボックス作成
    With ActiveDocument.Shapes.AddTextbox( _
        msoTextOrientationHorizontal, _
        KFNDLEFT, KFNDTOPP, KFNDWIDT, KFNDHEIG)
         '
         .Line.Visible = False
         With .TextFrame.TextRange
              '行間=固定値
              .ParagraphFormat.LineSpacingRule = wdLineSpaceExactly
              .ParagraphFormat.LineSpacing = KFNDLNSP
              '文字列,フォント
              .Text = strDat
              .Font.Name = KFNDFNTN
              .Font.Size = KFNDFNTS
         End With
   End With
End Sub


《蛇足》
 画像の「梅」は、6段目、6行目

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら