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

ExcelVBA(4)

ExcelVBAでできること(4)

前回の条件判断付繰り返し作業の類似構文で、必ず1回はLoopする構文を学びましょう。

構文
Do
   
 Loop While 条件式

前回学んだコードは、次のDo While 条件式 … Loop文でした。
Option Explicit
Sub judge()
 Dim kijun As Integer
 Dim minline As Integer
 Dim suugaku As Integer
 Dim eigo As Integer
 Dim kokugo As Integer
 Dim kei As Integer
 Dim r As Integer
 Worksheets(“judge”).Activate
 kijun = Range(“B2”).Value
 minline = Range(“C2”).Value
 r = 5
 Do While Cells(r, “E”) <> “”
  Cells(r, “E”).ClearContents
  r = r + 1
 Loop
 r = 5
 Do While Cells(r, “A”) <> “”
  suugaku = Cells(r, “B”).Value
  eigo = Cells(r, “C”).Value
  kokugo = Cells(r, “D”).Value
  kei = suugaku + eigo + kokugo
  If kei >= kijun And suugaku >= minline And eigo >= minline And kokugo >= minline Then
   Cells(r, “E”).Value = “合格”
  Else
   Cells(r, “E”).Value = “不合格”
  End If
  r = r + 1
 Loop
End Sub
このプログラムに、次の機能を追加します。
合否判断した後その結果を表示、もし生徒が皆無のときは、「一覧表に生徒の記載はありません!」と表示します。
つまり、生徒がいないときでも、最低1回はDo … Loop間を実行させるのが次の構文です。
Do
 
Loop While 条件式
追加するコードはつぎのとおりです。
If Cells(r,”A”).value<>”” Then
MsgBox Cells(r,”A”).Value & “君は” & Cells(r,”E”).value & “です。”
Else
MsgBox “一覧表に生徒の記載はありません!”
End If

もし、前回の
Do While 条件式
 
Loop
のままだと、 一覧表に生徒の記載はありません!と、表示されません。つまり、Msgbox “一覧表に生徒の記載はありません!”が実行されないということです。
また、Cells(r, “E”).Value = “不合格”には、
If Cells(r,”A”).value<>”” Then
の条件を加えます。
全コードを示します。
Option Explicit
Sub judge()
 Dim kijun As Integer
 Dim minline As Integer
 Dim suugaku As Integer
 Dim eigo As Integer
 Dim kokugo As Integer
 Dim kei As Integer
 Dim r As Integer
 Worksheets(“judge”).Activate
 kijun = Range(“B2”).Value
 minline = Range(“C2”).Value
 r = 5
 Do While Cells(r, “E”) <> “”
  Cells(r, “E”).ClearContents
  r = r + 1
 Loop
 r = 5
 Do
  suugaku = Cells(r, “B”).Value
  eigo = Cells(r, “C”).Value
  kokugo = Cells(r, “D”).Value
  kei = suugaku + eigo + kokugo
  If kei >= kijun And suugaku >= minline And eigo >= minline And kokugo >= minline Then
   Cells(r, “E”).Value = “合格”
  Else
   If Cells(r,”A”).value<>”” Then
    Cells(r, “E”).Value = “不合格”
   End If
  End If
  If Cells(r, “A”).Value <> “” Then
   MsgBox Cells(r, “A”).Value & “君は” & Cells(r, “E”).Value & “です。”
  Else
   MsgBox “一覧表に生徒の記載はありません!”
  End If
  r = r + 1
 Loop While Cells(r, “A”) <> “”
End Sub

メッセージが現れたら、確認後OKをクリックして下さい。

 

結 果

hantei3

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.