No.2ベストアンサー
- 回答日時:
閉じてないので、メモ代わりで申し訳ありません
参考URLのクイックソートのJAVAを単純にVBAへ書き換えた代物です
Function usOrder(GetOrder As Long, ParamArray usData() As Variant) As Variant
Dim AryMin As Integer
Dim AryMax As Integer
Dim usAry As Variant
AryMin = LBound(usData)
AryMax = UBound(usData)
usAry = usData
Call JaQuickSort(AryMin, AryMax, usAry)
usOrder = usAry(GetOrder - 1)
End Function
Sub JaQuickSort(AryMin As Integer, AryMax As Integer, usAry As Variant)
Dim R As Integer
Dim L As Integer
Dim K As Integer
Dim S As Variant
Dim X As Variant
If AryMin >= AryMax Then Exit Sub
K = AryMin + 1
Do While K <= AryMax
If usAry(AryMin) <> usAry(K) Then Exit Do
K = K + 1
Loop
If K > AryMax Then Exit Sub
If usAry(AryMin) >= usAry(K) Then
X = usAry(AryMin)
Else
X = usAry(K)
End If
L = AryMin
R = AryMax
Do While L <= R
Do While L <= AryMax
If usAry(L) >= X Then Exit Do
L = L + 1
Loop
Do While R >= AryMin
If usAry(R) < X Then Exit Do
R = R - 1
Loop
If L > R Then Exit Do
S = usAry(L)
usAry(L) = usAry(R)
usAry(R) = S
L = L + 1
R = R - 1
Loop
Call JaQuickSort(AryMin, L - 1, usAry)
Call JaQuickSort(L, AryMax, usAry)
End Sub
で、モジュールの所に記載すれば、関数として使用できます
基本的に3つの値を並べるのであれば、ここまでする必要があるか?
疑問では、ありますが・・・とりあえずね
最長辺 : usOrder(3, [縦], [横], [高さ])
短辺 : usOrder(2, [縦], [横], [高さ])
最短辺 : usOrder(1, [縦], [横], [高さ])
で、出てきます
参考URL:http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/al …
ありがとうございました!!
うまくできました!
すっごく助かります!
参考URLも拝見しました。
これからは少しづつVBAもとりいれて行きたいと思います。
今後とも宜しくお願い致します。
No.1
- 回答日時:
複数の値を返す関数は作れないので
3つのユーザ定義関数、Get1st(),Get2nd(),Get3rd()を作成します。
各ユーザ定義関数は3つの引数を取り、それぞれ最大値,中間値,最小値を返す関数です。
各ユーザ定義関数の中から、3つの値をソートする関数を呼べば作業効率が良くなります。
早速ありがとうございます!
ただ、アクセス初心者でしてVBAですとか関数の作り方はいまいちよくわかってません。
いま少しご教示ください。
また、初心者でこの関数を作成するのが難しいということであれば、あきらめて等符号で全パターン作成してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- 統計学 統計学、エクセルがわかりません!解答と詳しい解説をお願いします! (1)それぞれの地域別に記述統計量 9 2022/08/21 16:30
- 統計学 値上げ価格についての質問です。 3 2023/06/10 21:50
- 統計学 お世話になっています. x軸は時間(期間)y軸はある値に対する2つのグラフ比較をしますが、私個人の考 2 2023/03/30 11:42
- 統計学 アンケート調査のデータ比較をする際の統計分析方法の選択に迷っています 5 2022/04/15 01:05
- 物理学 ファンデルワールス状態方程式の臨界時の状態量を求める際、臨界体積VrはVの3次関数の極値でもあり変曲 1 2023/03/25 17:51
- 糖尿病・高血圧・成人病 血液検査の実測値と理論値との相違 1 2022/10/06 09:31
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
首吊りどこ締めるの
-
変な話しになります。尿検査で...
-
白血球が多いとどんな心配があ...
-
今朝、毎朝の習慣でオナニーし...
-
1日前の検尿
-
射精をして1週間以内に尿検査を...
-
検便についてです。 便は取れた...
-
EXCELで条件付き書式で空白セル...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
男です。昨日の午後3時くらいに...
-
EXCELで式からグラフを描くには?
-
彼女のことが好きすぎて彼女の...
-
中出しをするとお腹が痛い・・・。
-
値が入っているときだけ計算結...
-
これって喉仏ですか? 私は女性...
-
EXCELの条件付き書式で数式を空...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
中出しをするとお腹が痛い・・・。
-
麻疹風疹の抗体検査結果につい...
-
エクセルでエラーが出て困って...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
至急!尿検査前日にオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子が黄色?
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
健否~書類の書き方~
-
甲状腺が腫れているが血液検査...
-
はしかの抗体検査は何科の病院...
-
テスターで断線を調べる方法教...
おすすめ情報