当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2008年12月8日月曜日

不定回数の繰り返し処理その3

繰り返し処理の第三弾。
今回はForallステートメントです。

このステートメントは配列、リスト、コレクション(NotesDocumentCollection等)の要素分、繰り返して実行します。
配列の要素が5であれば、5回のループをするということです。
複数の値が格納されているフィールドの内容に対して、何か処理をするときとかに利用することが多いでしょう。
このブログでも、そのようなサンプルを多々書いています。

サンプルは、リスト変数を作成して、その要素の回数ループするようにしたものです。
リストの要素数は最初に、数値を入力して決めていますので、実行する度にループする回数を変えることができます。


Sub Click(Source As Button)
    Dim res As Variant '繰り返し回数の決定
    Dim i As Integer 'カウンタ
    '配列の定義(変数の後ろに()をつけると、その変数は配列と見なされる)
    Dim lst() As String
    
    '0~5の数値を入力させる(0~5以外の値が入力されたら再入力)
    'キャンセルボタンも無効
    Do
        res = Inputbox("1~5までの数字を入力してください。" & Chr$(10) & "0で終了", "繰り返し回数の決定", "1")
    Loop While res <> 5
    If res = 0 Then
        Msgbox "処理を中断します。", 0, "繰り返し処理"
        Exit Sub
    End If
    
    '【Redimは変数の再定義】
    '配列を定義する場合、配列の数が明示されていないと一回で定義できない。
    '今回は最初に入力させているので、一度の定義では確定できないため、このように再定義という形を取る。
    Redim lst( 1 To res ) As String
    
    '配列に文字列を代入している。(変数なので、繰り返し処理を使って代入すると早いだけ)
    For i = 1 To res
        lst(i) = Cstr(i) & "つめの配列"
    Next
    
    'lstという配列の数の分繰り返しを行うという意味。
    'その際、配列の内容をxという変数に吐き出している。
    Forall x In lst
        'xの内容を表示している。
        Msgbox x, 0, "配列の内容"
    End Forall
End Sub


Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: