[[20151128113325]] 『レコード判定』(ヤイリ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『レコード判定』(ヤイリ)

お世話になります。
奇数行の結果は0
偶数行の結果は1というように
VBAで対応したいのです。
簡単にご説明しますと
1レコードから
0と1を繰り返す処理結果を
出力したいと思ってます。
例えばこちらで付加した
シーケンスを利用して、
割り切れない数値は、
0
割り切れる数値は
1の
ような感じ
もしくは、シーケンスが
奇数は0
偶数は1でもかまいません。
因みに、件数が多いのでセル操作
はさけたいです。
お知恵をお貸しください。
どうぞよろしくお願い致します。

< 使用 Excel:Excel2010、使用 OS:unknown >


偶数か奇数かということでしたら、modを使って判定できませんか。
交互というこであれば、ブール型の変数を用意して
trueとfalseを切り換えるとよいです。

具体的な事例とできれば試してみたコードがあると
回答がしやすいと思います。

(マナ) 2015/11/28(土) 12:23


 すでにマナさんから回答があるように、ループの中でトグル的に状態を切り替えます。
 5回ループさせて判定してみます。

 Sub Sample1()
    Dim i As Long

    For i = 1 To 5
        If i Mod 2 Then
            MsgBox "奇数"
        Else
            MsgBox "偶数"
        End If
    Next

 End Sub

 Sub Sample2()
    Dim flg As Boolean
    Dim i As Long

    For i = 1 To 5
        flg = Not flg
        If flg Then
            MsgBox "奇数"
        Else
            MsgBox "偶数"
        End If
    Next

 End Sub

 >>因みに、件数が多いのでセル操作はさけたいです。 

 【セル操作】の意味がいまいちわかりませんが、セルを参照するだけであれば、件数が多くても、そんなにレスポンスを気にすることはありません。
 もちろん、参照対象をいったん配列に取り込んで、配列内を参照すれば、オブジェクト参照負荷がほんの少し軽減されるでしょうけど、微々たるものです。
 件数が多い時に影響があるのは参照ではなく書き込みです。結果をセル毎に書きこまず、配列等に格納しておいて、最後に一括転記とか、
 あるいは、転記すべきセルアドレスをUnion等で取得しておいて、その領域に、一括書きこみとか、それは、要件に応じて対応します。

(β) 2015/11/28(土) 13:01


なるほど。
Modを使用すればいいんですね。
アドバイスとサンプルデータ
どうもありがとうございました。
今後ともどうぞよろしくお願い致します。
(ヤイリ) 2015/11/29(日) 08:16

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.