Re4:50歳から始めるラズベリーパイ-8
Re4:50歳から始めるラズベリーパイ
LibreOfficeでVBAプログラミング入門
amazon kindle版を出版しました。
5.3 配列を使ったプログラム-3
乱数をつかって1~10までの数値を発生させて、配列x()に入れて大きいものから順番に並べます。(ソートします)
Option VBAsupport 1 'VBAと互換性
Dim x(10) as Integer 'xを整数型として宣言
Dim i as Integer
Dim j as Integer
Dim t as Integer 'tデータ仮置き用
FOR i=1 TO 10
x(i-1)=int(rnd*10+1)'1~10の整数の乱数発生
Cells(i,1).Value=x(i-1) 'セルに表示
NEXT i
FOR i=0 TO 8
FOR j=i+1 TO 9
IF(x(j)>x(i)) THEN 'x(j)>x(i)であれば
t=x(j) 'tにx(j)の値を入れます
x(j)=x(i) 'x(j)とx(i)の値を入れ換えます
x(i)=t 'x(i)にtの値を入れます。
ENDIF
NEXT j
NEXT i
FOR i=0 TO 9
Cells(i+1,2).Value=x(i) 'セルに表示
NEXT i
End Sub
計算結果例
プログラムは、
はじめに
x(0)のところに最大値を移動します。
次に
x(0)が最大になったので
x(1)のところにx(1):2から10までの最大値を移動します。
・・・
これを順に行うと、大きい順に並びます。
ワークシート変数は次のようになります。
Cの列に順番を設定します。Dの列が降順になりました。
FOR i=0 TO 9
Cells(i+1,4).Value=Application.Large(Range("A1:A10"),Range("C" & (i+1)))
NEXT i
昇順に設定するときは次のようになります。
Cの列に順番を設定します。Dの列が昇順になりました。
FOR i=0 TO 9
Cells(i+1,4).Value=Application.Small(Range("A1:A10"),Range("C" & (i+1)))
NEXT i