
No.5ベストアンサー
- 回答日時:
申し訳ありません
記述方法間違えていました
filter(flag,"false",true,vbtextcompare)
上記が正しいfilterの記述です。
これをuboundで囲って下さい
No.4
- 回答日時:
No.3です
書き忘れてしまいましたが、前述した方法はvbaでは実装できません。
(indexofが無いので…)
代替案としてブール型に拘らないのであれば以下のような手法もあります。
Dim flag(4) as string ‘型を文字列に変更
if ubound(filter(flag,”false”,vbtextcompare))<0 then
end if
前述したものと概ね同じ様な判定で、
第1引数に入れた配列から第2引数を含む要素を配列で返し、その要素数をuboundでカウントします。
これも要素がなければ-1です。
filterの第3引数は大文字/小文字を区別しない為のものです。
以上ご参考まで
No.3
- 回答日時:
配列化されているのでindexofを使って見ては如何でしょうか。
例: if array.indexof(frag,false)<0 then
indexofは第1引数に含まれる最初の第2引数の位置を返り値とする関数で、第2引数が含まれない場合は-1を返します。
以上ご参考まで

No.2
- 回答日時:
そのような判定機会が多い場合、私なら専用の判定ルーチンを作ります。
以下は、全ての要素がtrueならtrueを返す判定ルーチン(AllTrue)です。
flag1,flag3は全てtrueです。
flag2が一部falseです。
判定ルーチンは呼び出し側の要素数がいくつでも対応可能です。
ーーーーーーーーーーーーーーーーーーーーーーー
Option Explicit
Sub Macro1()
Dim flag1(4) As Boolean
Dim flag2(3) As Boolean
Dim flag3(2) As Boolean
flag1(0) = True
flag1(1) = True
flag1(2) = True
flag1(3) = True
flag1(4) = True
flag2(0) = True
flag2(1) = True
flag2(2) = False
flag2(3) = True
flag3(0) = True
flag3(1) = True
flag3(2) = True
Debug.Print AllTrue(flag1)
Debug.Print AllTrue(flag2)
Debug.Print AllTrue(flag3)
End Sub
Private Function AllTrue(ByRef ArrayFlag() As Boolean) As Boolean
Dim i As Long
AllTrue = False
For i = 0 To UBound(ArrayFlag)
If ArrayFlag(i) = False Then Exit Function
Next
AllTrue = True
End Function
---------------------
実行結果
True
False
True

No.1
- 回答日時:
調べる数がうんと多ければループにするんでしょうが、中途半端な個数だとそれもちょっとですよね。
多少なりとも簡単に書くなら、= True を省略することじゃないですか?
If flag(0) And flag(1) And ...
みたいにです。Boolean型の変数は、それ自体がTrue/Falseの値を持っているので、True判定がしたければ= Trueは書かなくても一緒です。値として展開すれば、True=Trueって書いてあるのと同じことですからね。True=Trueの評価結果はTrueなので、True一個あれば事足りるわけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Boolean型配列中のTrueの有無を判定したい(VB2005)
Visual Basic(VBA)
-
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
動的配列が存在(要素が有る)か否かを判定できますか?
Visual Basic(VBA)
-
-
4
subの配列引数をoptionalで使う方法
Visual Basic(VBA)
-
5
配列でデータが入っている要素を求める方法
Visual Basic(VBA)
-
6
Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない
Excel(エクセル)
-
7
vba クリップボードクリアについて教えてください
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dim flag(4) as boolean で配列...
-
Strawberry Perl for Windows ...
-
エクセルVBAでTransposeの不思議
-
マクロ Publicでの配列定義
-
VBA 二次元配列 ループの書き方
-
VBA横データを縦にしたいです
-
VBAでの一時停止と再開の方法
-
UWSCに制限時間を付けたいです
-
テキストボックスの名前に変数...
-
C言語でファクト関数を使わずに...
-
xmplayの使い方
-
ループフリー
-
Do whileでExitせず、ループの...
-
csh foreachで「*」でエラ...
-
Can't use string ("0") as an ...
-
CやJAVa,Rubyなどプログラミン...
-
GIFアニメをループさせたくない
-
CSVファイルの特定の行だけを読...
-
エクセルの当番表を作っていま...
-
連想配列のサイズ制限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのautofilter、criteriaの配...
-
エクセルVBAでTransposeの不思議
-
perlで2次元配列をサブルーチ...
-
Strawberry Perl for Windows ...
-
マクロ Publicでの配列定義
-
クラスに配列を渡す方法
-
リストボックスに縦スクロール...
-
二次元配列のインデックスについて
-
Dim flag(4) as boolean で配列...
-
与えられた配列の順にソートす...
-
Excel VBA ユーザーフォームの...
-
VBA 二次元配列の1つ目を増...
-
プログラミング アルゴリズム
-
複数の配列の全ての組み合わせ...
-
二次元配列における要素数のは...
-
VB6で配列の最大値を簡単に求め...
-
バイナリデータの検索(VB.NET2008)
-
VBA 二次元配列 ループの書き方
-
VBA 多次元配列を用いてグルー...
-
VBA 条件
おすすめ情報