締切済み

この構文を解説して欲しい

  • 困ってます
  • 質問No.262142
  • 閲覧数51
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 17% (17/95)

Private Sub 問題印刷_V_Click()
Dim ID_N(2000) As Long '問題ID
Dim ID_F(2000) As Boolean '選択済みフラグ
Dim ID_P(20) As Integer '選択された問題
Dim I As Integer
Dim MF As Boolean '選択マッチング中
Dim CT As Integer 'データカウンタ
Dim MAX_V As Integer '問題数
Dim S_N As Integer '選択ID
Dim DbsCurrent As Database, rstEmployees As Recordset
For I = 1 To 2000
ID_F(I) = False
Next
Set DbsCurrent = CurrentDb
Set rstEmployees = DbsCurrent.OpenRecordset("ST_算数計算テスト", dbOpenTable)
rstEmployees.Index = "選択キー" '学年+階級+階級区分+レベル
rstEmployees.MoveFirst '最初のレコードに移動
MF = False 'マッチングフラグは、最初は偽
CT = 0
Do
If rstEmployees.EOF Then Exit Do 'レコード終了
If rstEmployees!学年 = 学年_V And rstEmployees!階級 = 階級_V And rstEmployees!階級区分 = 段_V And rstEmployees!レベル = レベル_V Then
MF = True
CT = CT + 1
ID_N(CT) = rstEmployees!ID
Else
If MF = True Then Exit Do
End If
rstEmployees.MoveNext
Loop
rstEmployees.Close
If CT = 0 Then MsgBox "問題がありませんでした", 0, "問題未登録エラー": Exit Sub
If [5_V] Then MAX_V = 5
If [10_V] Then MAX_V = 10
If [20_V] Then MAX_V = 20

回答 (全1件)

  • 回答No.1

ベストアンサー率 41% (245/593)

>For I = 1 To 2000
>ID_F(I) = False
>Next

ID_F配列の1~2000すべてにFalseを入れています。(初期化)

>Set DbsCurrent = CurrentDb
>Set rstEmployees = DbsCurrent.OpenRecordset("ST_算数計算テスト", dbOpenTable)

CurrentDb(どこかにグローバル定数(もしくは変数)としてあるDB)を開いてST_算数計算テストテーブルを開いています。


>If rstEmployees.EOF Then Exit Do 'レコード終了
>If rstEmployees!学年 = 学年_V And rstEmployees!階級 = 階級_V And rstEmployees!階級区分 = 段_V And >rstEmployees!レベル = レベル_V Then
>MF = True
>CT = CT + 1
>ID_N(CT) = rstEmployees!ID
>Else
>If MF = True Then Exit Do
>End If
>rstEmployees.MoveNext
>Loop

かいつまんで言うと「ST_算数計算テーブルの中の学年、階級、階級区分、レベルが_Vのついている変数(定数)と一致する」、もしくは「レコードをすべて検索し終わったとき」にループを抜けます。一致するものがあった場合には
MFをTrueに変更

>If CT = 0 Then MsgBox "問題がありませんでした", 0, "問題未登録エラー": Exit Sub
>If [5_V] Then MAX_V = 5
>If [10_V] Then MAX_V = 10
>If [20_V] Then MAX_V = 20

ここについては、この関数の仕様の意味、MAX_Vだとか5_Vの意味がわからないため、説明しきれません。
(ただのIF文なので詳細の説明は割愛します)
感謝経済
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数をマイページで確認!

ピックアップ

ページ先頭へ