VBAソフトを通じて、利便性を、驚異の低価格でお届けします。 アイデアを形に、Saphamy-softは、仕組み創りができます。

ExcelVBA(5)

ExcelVBAでできること(5)

今回は、「条件式が満たされるまで処理を続ける」構文を学びましょう。

構文
Do Until 条件式
  
 Loop

Do While 条件式が、条件式が満たされている間処理を続ける、に対し、
Do Until 条件式は、条件式が満たされるまで処理を続ける、です。
次に使用法を例示します。

例えば、ある道路を双方の端から車両が走行してきます。
両者の車間距離が一定の距離以下になるまで、線を引くという作業です。
前提として、値を設定します。
道路の長さは10Km、車両Aは時速60Km、車両Bは時速30Kmの等速運動、車間距離が1Km未満になる直前に停止するとします。
表示は、1分毎に行うという前提です。
必要な変数は、
道路の長さ=d
車両Aの時速=s1
車両Bの時速=s2
時間の経過=m
車間距離=b
停止する車間距離=q
とします。

プロシージャーは、Sub speed()とします。
変数に代入していきます。
距離の単位はKmに、時間は分です。
Sub speed()
 d=10
 s1=60
 s2=30
 q=1
 m=0
End Sub
そして、車間距離bは、
b=d-(s1+s2)*m/60(*は×)
です。
また、停止するかどうかの判断は、1分先を計算する必要があります。そうしないと、衝突してしまいかねません。
ここで、今回のテーマ「条件式が満たされるまで、作業を続ける」です。
これは、
Do Until 判断式
 処理
Loop
です。
判断式は、車間距離が1Km以上の間車両は進行する、ですから
Do Until b<q
 
 m=m+1
 b=d-(s1+s2)*m/60
Loop

ここで、変数はどういう型の変数にするか宣言すること、宣言していない変数は使えない設定をすることを学びましょう。
とりあえず、今回使用するのは正の整数のみ扱う型はInteger、少数を扱うのはここではSingleを使います。Option Explicitは変数の宣言を強制するものです。
変数の宣言は
Dim ○○ as Integer
Dim △△ as Single
のようにします。
軌跡は、行4が始点、行5からスタートです。

よって、
Option Explicit
Sub speed()
 Dim d as Integer
 Dim s1 as Integer
 Dim s2 as Integer
 Dim m as Integer
 Dim b as Single
 Dim q as Single
‘speedシートをアクティブにする
 Worksheets(“speed”).Activate
‘すべてのセルをクリアする
 Cells.ClearContents
 d=10
 s1=60
 s2=30
 q=1
 m=0
 b=d
 Do Until b<q
‘車両Aの軌跡
   Range(Cells(5+m-1,1),Cells(5+m-1,(s1*m/60)*2+1)).Value=”■”
‘車両Bの軌跡
   Range(Cells(5+m-1,22-(s2*m/60)*2),Cells(5+m-1,22)).Value=”■”
   m=m+1
   b=d-(s1+s2)*m/60
 Loop
End sub

結果
speed

 

ExcelVBA(1)へ

 

VBAソフトのことなら何なりとお問い合わせください。 TEL Mail; customerdesk@saphamy.jp

 ゆめやど 

 成城石井 


 デコレーションケーキ 

 格安!月の土地 

 Stay Japan 

 フジテレビ フラワーネット 

 ひとてまい 

 赤い風船 日本旅行 

 大きいサイズはここ 

 マイナビトラベル 

 るるぶダイニング 

 近畿のプリンス鉄道 

 KDDIショッピングモール 

PAGETOP
Copyright © VBAソフトのSaphamy-soft All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.