No.3ベストアンサー
- 回答日時:
他の2二人のコメントと同じで、まず、自分で試しましょう。
話はそれからです。
>andで結べる条件に制限数はありますか
プログラム言語で、そのような制約があるものを見た事がありません。通常、変数に格納できる、サイズ又はデーター型です。使用できる文字コードや、予約されている単語などもそうですね。
よくあるのが、1行にどのくらいの文字数を埋める事ができるのか、と言う質問を小学生とか、初心者に聞かれることはありますが、これは、コンパイラーとか、そのソースを読み込んで実行する、プログラムによります。
ただ、AND、ORで結ぶのは、4、5つぐらいまでが実用向きです。ANDなどの演算子は、IF文と同じで、一つ増えるごとに、一つ実行速度が遅くなるわけです。つまり、ANDやIF文でくくらないような、アルゴリズムを考えてみませんか。そうすると、簡潔な文書で、見てわかりやすく、後にみても、処理系が分かりやすくまとまります。
特に、AND、ORでくくると、必ず最初の頃、穴があります。それを埋めるために、さらにコードをつなげないといけなくなると言う悪循環がでます。
VBAでもサブルーチン又はクラス定義ができます(他の方も指摘していますね)。それらを使い条件を整えてから、ループにはいる、又は、ループからぬける等、やり方は多岐にわたります。
No.2
- 回答日時:
条件判定の部分を関数ブロツクに独立して書く方法もあると思う。
判定項目が複数で合ったり、相互比較などあって、条件該当判定が複雑なら別に関数のルーチンで判定のコードを書きTRUEかFALSEを返し、それを使えば良いのでは。
その場合はAND条件やOR条件はIF分のネストの問題に摩り替えられると思う。
ーー
本件は質問者が実際にやってみれば良い。論より証拠。
適否を判別する、別の原理や物差しはあるはず無い。
参考
Sub test01()
m = 11
n = 5
Do
aa m, n
MsgBox m & " " & n '実際は処理のコードを書く
n = n + 1
Loop While aa(m, n) = True
End Sub
Function aa(m, n)
If m > 10 Then
If m > n Then
aa = True
Exit Function
Else
aa = False
Exit Function
End If
Else
aa = False
End If
End Function
No.1
- 回答日時:
いや、聞く前に自分で試そうよ。
"And"は論理積を取っているだけなので、"+"や"-"のよーな計算式だと考えればよいです。混乱しないよう、カッコで括るのがオススメ。
Loop Until ( (m >= 100) And (m <> n) )
当然、代入式にも使えます。普通やんないケド。
test = m >= 100 And m <> n
ということで、制限はほぼナイはず。ただ、可読性あげるために速度犠牲にする類のモノなので、乱用はダメ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby VBA 2 2023/01/14 14:14
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- その他(Microsoft Office) エクセル 条件付き書式 日をまたぐ塗りつぶし 1 2023/01/13 18:00
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- Visual Basic(VBA) ExcelVBAの転記について 1 2022/03/23 20:13
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力した文字列から母音だけを...
-
break文でループを一気に抜ける...
-
do-while文が禁止される理由
-
For文の終了値を関数にしても問...
-
strtokを使用したループ内でのs...
-
入力した数値を倍々するプログラム
-
ループを途中で抜けたいのですが。
-
PAD図の書き方
-
エクセルでC言語のfor文と同じ...
-
Excel VBAで年度をまたぐ期間の...
-
Matlabを使った心理学実験
-
COBOLのEVALUATE文
-
if文の中にfor文なのか、for文...
-
C言語 数字を削除する関数
-
PIC のプログラムについて ど...
-
for文while文の無限ループの違...
-
ゲームオーバーのプログラム
-
n重のfor文にするには?
-
文字列を後ろから1文字ずつ表示...
-
H8/3048マイコンAD/DA変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
do-while文が禁止される理由
-
break文でループを一気に抜ける...
-
エクセルでC言語のfor文と同じ...
-
ループを途中で抜けたいのですが。
-
エクセルVBAで Do While (1)って?
-
C言語forループが完結した場合...
-
For文の終了値を関数にしても問...
-
excel VBA if文について
-
入力した数値を倍々するプログラム
-
入力した文字列から母音だけを...
-
Excel VBAで年度をまたぐ期間の...
-
if文の中にfor文なのか、for文...
-
C言語、whileループを抜け出す...
-
for文while文の無限ループの違...
-
UWSCにてある一定の動作を無限...
-
__asm int 3でのブレイクポイン...
-
PIC のプログラムについて ど...
-
他言語で言うcontinue文
-
Cプログラムが終了しない
-
プログラムで関数は使わない方...
おすすめ情報