- 前回の解答
プログラムを実行してみたら,データの個数より1多くなった筈です。
ループが終わった時点で,iの値は最後のセルの番号ではなくて,その次の,最初の空白のセルの番号になっていますので,1を引く必要があります。Sub 練習()
i=1
do until cells(i,1)=""
i=i+1
loop
n=i-1
cells(n+1,1)="データの個数"
cells(n+1,2)=n
End Sub - 先週のプログラムはDo whileというのを使って書くことも出来ます。
Do While 条件
繰り返す部分
Loopで、条件が成立している間(while)繰り返します。今回は空欄で無い間繰り返すのですから、等しくないを示す<> ""を使って
Sub 練習()
i=1
do while cells(i,1) <> ""
i=i+1
loop
n=i-1
cells(n+1,1)="データの個数"
cells(n+1,2)=n
End Subと書きます。
- ループのまとめ
-
Do While 条件
プログラム
Loop
最初に条件を判断し、条件が満たされている間(While)、Loopまでのプログラムを実行します。 -
Do
プログラム
Loop While 条件
まずプログラムを実行します。 その後条件が満たされている間(While)、Doに戻ってプログラムを実行します。 -
Do Until 条件
プログラム
Loop
最初に条件を判断し、条件が満たされるまで(Until)、Loopまでのプログラムを実行します。 -
Do
プログラム
Loop Until 条件
まずプログラムを実行します。 その後条件が満たされるまで(Until)、Doに戻ってプログラムを実行します。
-
Do While 条件
- さてデータの数を数えたので、前回作ったプログラムを使ってデータの和を求めましょう。
ここで問題になるのが、Dim文はプログラムの先頭、sub のすぐ後に書かなければならないという決まりがあるのです。つまり上のプログラムでnを求めた後で Dim x(n)と書いたのではエラーになります。
この場合、配列の個数を後で変更出来るようにします。プログラムの大凡の流れは次のようになります。
Sub 練習()
dim x() as single,...使う変数の型を宣言します。
前回の後半のプログラムでデータの個数を数えてnに代入するプログラムをここに書きます。
redim x(n)
前回の前半のプログラムを使って、データを配列xへ代入し、和を求めるプログラムをここに書きます。
End Subこの講義では今後このように、この部分で何をすれば良いか、を言葉で書きますので、それまでに習ったことを思い出してプログラムを書いてください。
配列の使い方のまとめ
- プログラムの先頭のSubの次の行に
Dim x(100)
と書くと,x(0),x(1)からx(100)までを使うことができます。 - プログラムの先頭のSubの次の行に
Dim x( )
と書くと,xという配列を使う用意はしましたが,実際に何個目まで使うかはまだ決まっていませんので,実際に使う前に
ReDim x(100)
とか
n=100
ReDim x(n)
のように,実際に使う個数を用意します。
- プログラムの先頭のSubの次の行に
- 今回作ったプログラムをもう一度実行すると、今度は6番目のセルまで空欄で無いので、データは6個だと誤解して、6番目の"データの個数"も足そうとしてエラーになります。従って、プログラムを「セルが空欄でなく、かつ数字」の間だけ繰り返すように修正しましょう。二つの条件が同時に成立することは And を使って表します。
Sub 練習()
i=1
do while cells(i,1) <> "" And IsNumeric(Cells(i, 1))
i=i+1
loop
n=i-1
cells(n+1,1)="データの個数"
cells(n+1,2)=n
足し算の部分は先ほどと同じ
End Subのように書きます。二つの条件の片方が成立すれば良いときには Or を使います。
ドコモ、リユース品「iPhone 13 Pro」を最大44,000円割引、A+品が46,200円から
-
ドコモの公式オンラインストア「ドコモオンラインショップ」にて、docomo Certified(認定リユース品)の「iPhone 13
Pro」を新規契約またはMNP契約(のりかえ)で購入すると、本体代金が44,000円...
0 件のコメント:
コメントを投稿