目標
Do Loop ステートメントを事務処のを効率化に利用できる
Do~Loopステートメントの利用
Do~Loopステートメントを使ったおもちゃプログラム
実際の利用としてはあまり考えづらいですが、百葉箱のようなものを作成してみます。今では、GoogleのFormsなどでもっと簡単に作成できるので一先ず、こちらはアイデアよりも利用の練習としてサンプルプロシージャをあげています。
サンプルプロシージャ1
Sub DoLoop5()
Dim YNC As Integer
Dim Ans As String
Sheets("Sheet6").Select
Range("A1048576").Select
ActiveCell.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
YNC = MsgBox("要望記入シートを記入しますか?", vbYesNo)
Do While YNC = vbYes
Ans = InputBox("会社への要望を入力してください。" & Chr(10) _
& "終了する時は空欄のままOKを押してください。")
If Ans = "" Then
Exit Do
End If
With ActiveCell
.Value = Ans
.EntireColumn.AutoFit '文字数によってセルの幅を自動調整します。「.WrapText = True」にするとセルからあふれた文字を改行してセルに収めます。
.Interior.Color = RGB(0, 0, 0)
.Offset(1).Select
End With
Loop
End Sub
実行結果
Do~Loopステートメントを使った実用的なプログラム
ここでは従業員の勤務データから給与明細の作成を行うプロシージャを組んでみたいと思います。まずはExcelシートの準備を行います。
Excelシートの準備
左に勤務データをおいて、右に給与明細のひな型を準備します。
サンプルプロシージャ2
サンプルプロシージャ2では出勤をした(勤務時間や夜間時間 > 0)の従業員の明細を作成して印刷を行うといった内容です。また月の途中で勤務時間+夜間時間が160時間を超える従業員の名前にはFor Eachステートメントを利用してセルを緑色にハイライトしています。
Sub makeSalary()
Dim i As Integer, j As Integer
Dim rowNum As Integer
Sheets("Sheet5").Select
Range("A1").Select
ActiveCell.CurrentRegion.Select
rowNum = Selection.Rows.Count
i = 2
Do While i <= rowNum
Range("L1").Value = Cells(i, 1).Value
Range("L4").Value = Cells(i, 3).Value * (Cells(i, 6).Value - Cells(i, 8).Value)
Range("M4").Value = Cells(i, 4).Value * (Cells(i, 7).Value - Cells(i, 9).Value)
If Cells(i, 6).Value + Cells(i, 7).Value > 0 Then
Range("K1:Q8").Select
MsgBox "例えばここで印刷のプログラムを走らせます。"
End If
i = i + 1
Loop
Dim employeeName As Range
Range(Cells(2, 1), Cells(rowNum, 1)).Select
j = 2
For Each employeeName In Selection
If Cells(j, 6).Value + Cells(j, 7).Value >= 160 Then
Cells(j, 1).Interior.ThemeColor = xlThemeColorAccent6
Else
Cells(j, 1).Interior.Color = RGB(255, 255, 255)
End If
j = j + 1
Next employeeName
End Sub
実行結果
今回は以上となります。
初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。
「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...