• 締切済み

VB6で配列の最大値を簡単に求める。

VB6で配列の最大値を簡単に求める方法はありますでしょうか? 今は、1番目と2番目を比較して、大きい方を変数に格納して、 変数と3番目を比較して、・・・・ 以下繰り返して、求めています。

みんなの回答

回答No.2

で、現状の具体的なコードはどうなってんの? VB6は持ち合わせていませんが、親戚?のVBAなら Function myMax(ParamArray aryX() As Variant) As Variant '要素の中で最大値を求めます。myMax(null,5,10,3) → 10 Dim v As Variant For Each v In aryX If IsEmpty(myMax) Or IsNull(myMax) Or v > myMax Then myMax = v End If Next 'Debug.Print TypeName(myMax) End Function ご参考まで。

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

ないです。 入れるときに同時に求めておくという方法もありますが、全件について比較をするということになります。

関連するQ&A

  • VB.NETの配列

    こんにちわ。 いまVB.NET2003で開発をしている者です。 たとえば画面で入力された最大400文字(800バイト)の テキストを50文字(100バイト)ずつに区切って, 配列に格納したいのですが, 関数など,効率の良い方法はあるでしょうか? 教えてください。よろしくお願いします。

  • CUDAでの配列の最大値について

    質問です。 GPUを用いて配列の最大値を求める処理について 1,隣の要素と比較する。 2,スレッド数だけ離れた要素と比較する。 例えば,配列の要素数16、スレッド数8の場合 1,スレッド0は0番目と1番目の要素を比較 2,スレッド0は0番目と8番目の要素を比較 どちらが高速になると思われますか? 自分は、バンクコンフリクトが少ない2番の方が高速になると思います。 皆様の回答お待ちしております。

  • VBの配列について

    VB6.0について質問です。 データベースにある1レコードの情報を一括して取得し 変数に配列化して格納したいのですが可能ですか? データベースはAccessです。 DAOで接続を考えております。 以下のソースを試したのですが駄目でした><; dim ITEM_A() For tmp1 = 0 To ds.Fields.Count - 1 Step 1 ITEM_A = Replace(ds.Fields(tmp1).Value, vbCrLf, "") Next ITEM_A(0)=data1 ITEM_A(1)=data2 ITEM_A(3)=data3 ITEM_A(4)=data4 以上のように格納したいのでお願いします><

  • VB2005 コントロール配列について教えていただけませんか?

    現在VB2005を用いてプログラムを行なっている初心者です。 ここのサイトでVB2005ではコントロール配列は使用できないことを知りました。そこで、例えばフォーム上にTextBoxを5個配置して、各TextBoxに入力された値を配列に格納するのにはどのようにすれば良いでしょうか? data(0) = textbox1.text data(1) = textbox2.textと一つずつやるしかないでしょうか・・・ For文などを用いて簡単にできる方法を教えてください。 よろしくお願い致します。

  • VB.NET 配列の格納

    VB.NET 配列の格納 エクセルから任意の列の値を格納したいのですが・・・ 現在、値の取得は以下のようなFor文ループを書いています。 各値を一時記憶(格納)したいのですが、どう書けばいいのでしょうか。 また、各列内で重複する値があった場合、重複を避けて値を取得したいのですが どう書いていいかわかりません。 初歩的な質問で申し訳ありませんが、宜しくお願いします。 PN()→G列の各セルの値の変数 JN()→H列の各セルの値の変数 の変数GYO→シートの最終行 j = 1 For i = 1 To GYO '【リストのG列から部品番号を取得】 PN(j) = xlSheet.Cells(i, 7).Value '【リストのH列から部品和名を取得】 JN(j) = xlSheet.Cells(i, 8).value Next

  • vb2008 コントロール配列

    VB6からVB2008へ移行を検討しているものです。 そこで質問なんですが、VB2008でコントロールの反復処理はどう処理すればいいのでしょうか? VB6の時はコントロール配列を使用して、ForNextで繰り返せばそれらしいことはできました。VB2008はコントロール配列がサポートされていないのでどうすればいいかわかりません。みなさんはどう反復処理を行っているのか教えていただきたいと思います。 具体的な処理として、テキストボックス1~10があり、そのテキストボックスの内容を1~10の順番で、テキストボックス11~20に格納する。以上、宜しくお願いします。

  • 配列内で最大値を検索し、その値とindexを保管するにはどのようにしたらいいでしょうか??

    宜しくお願い致します。 VB2005を使って書いてます。 内容は質問タイトル通りなのですが、配列内の格納されている数値の中で最大値を抽出し、index番号も取得したのですが、かなり考えたのですが思いつかないので、こちらで質問させていただきました。 もちろん配列内では、最大値が一つとは限らず、複数個存在する場合がありますので、該当する全てのindex番号に関しては抽出することができるようにと考えています。 後々そのindex番号を使って検索を行うことになりますので、出来ましたらそのindex番号をさらに配列に格納し、For~nextを利用して簡単に参照することが出来るように出来たら理想的なのですが・・・ どなたかお知恵を拝借させてください。 宜しくお願い致します。

  • .NETのコントロール配列(VB4からの移行)

    扱うデータが単純だったのでずっとVB4を使ってきたのですが、excelのVBAなどと絡めて使おうとするとうまく機能しない部分があったり、XP上では走らなかったりということもあり、.NETに移行しようと努力しているものです。肝心の質問ですが.NETでコントロール配列が使えないのは何かと不便だと思っているのですが、10個のラジオボタンを押すとindexの数値を取得するという部分を.NETで記述する場合、例えば1番目のラジオボタンをオンにすると変数HenNoに1を代入するということを書くと以下の様になるのですが If RadioButton1.Checked = True Then HenNo = 1 End If 以下2から10まで上記の1のところの数値を置き換えてそれぞれ書いていくということしか方法はないのでしょうか?何か非常に無駄に見えるし、わかりづらくなるような 気がするのですが・・・・ よろしくお願いします

  • VB.netの配列とVB6の配列の違い

    VB6で画面を作成し、演算処理を行うDLLをVC6で作成しています。 下記のコードでVB6でSingle型の2次元配列を宣言しま、VCのDLLでエクスポートしている関数に渡 します。 VC6DLL側のコード---------- EXPORT void __stdcall TESTFUNC (float *pfData,long nSize{ } VB側のコード---------- 宣言 Declare Function TESTFUNC Lib "TEST.dll" (ByRef pfData As Single, ByVal nSize As Long) As Long 配列宣言 Public sngDat(999,1) as single 呼び出し TESTFUNC sngDat(0,0),1000 このように呼び出した場合、VC6のTESTFUNC にブレークポイントを設定し、停止するとpfDataの ポインタをインクリメントした場合、sngDat(0,0),sngDat(1,0),sngDat(2,0)と、1次元目の添え字を インクリメントした状態になるように、メモリに格納されています。 この動作を前提として、VB.net側でも同じように呼び出してみました。 VB.net側のコード---------- 宣言 Declare Function TESTFUNC Lib "TEST.dll" (ByRef pfData As Single, ByVal nSize As Integer) As Integer 配列宣言 Public sngDat(999,1) as single 呼び出し TESTFUNC(sngDat(0,0),1000) VC側は全く同じコードを利用するとします。 同じように、VC6のTESTFUNC にブレークポイントを設定し、停止するとpfDataの ポインタをインクリメントした場合、sngDat(0,0),sngDat(0,1),sngDat(1,0)と,sngDat(1,1)、と1次元目の添え字を インクリメントせず、2次元目の添え字をインクリメントした状態になるように、メモリに格納されています。 VB6→VC6のDLLの場合の配列渡しと、VB.net→VC6のDLLの場合の配列渡しで違いがあるのは 何故でしょうか?また、VB.net側の配列渡しの仕様を、VB6側の仕様に合わせる方法は無いのでしょうか? よろしくお願いいたします。

  • .net 2010VB配列TextBox貼り付ける

    初めて質問致します。 よろしくお願い致します。 超初心者レベルです。 VB6の時に、Formにテキストボックスやラベルなどを1つ貼り付け、それをコピーすると「配列にするか?」と聞かれていました。 今、.net 2010 VB でテキストボックス(ラベル)をコピーしても、配列にするかどうか聞いてくれません。 プログラム等ではなく、手動でFormに貼り付け時に、配列にする方法を教えて下さい。 (どのプロパティが、配列のインデックスなのかが分かりません。) <(__)>

専門家に質問してみよう