Function 現在日付()
'練習問題2 エクセルシートに"=現在日付()"を記しておけば今日の日付を表示。
現在日付 = Now()
End Function
Function 曜日()
'練習問題3 エクセルシートに"=曜日()"を記しておけば今日の日付を表示。
曜日 = Choose(Weekday(Now(), vbSunday), "日", "月", "火", "水", "木", "金", "土")
End Function
Function 曜日NEW(任意の日付)
'練習問題4 任意の日付を指定するとその曜日を表示。
曜日NEW = Choose(Weekday(任意の日付, vbSunday), "日", "月", "火", "水", "木", "金", "土")
End Function
Function 採点(点数)
'練習問題5 70点以上は合格、70点未満は不合格
If 点数 >= 70 Then
採点 = "合格"
Else
採点 = "不合格"
End If
End Function
Function 手数料(株式数, 株価)
'練習問題6 売買代金が100万未満なら手数料0.8%,100万以上なら0.7%
If 株式数 * 株価 < 1000000 Then
手数料 = 株式数 * 株価 * 0.008
Else
手数料 = 株式数 * 株価 * 0.007
End If
End Function
Function 曜日算出(曜日算出の日付)
'練習問題7 任意の日付に対する曜日
曜日算出 = Choose(Weekday(曜日算出の日付, vbSunday), "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
End Function
Function 実労時間(出勤, 退社)
'練習問題7 出勤簿の実労時間算出
実労時間 = (退社 - 出勤)
End Function
Function 日払計算(出勤, 退社, 時給)
'練習問題7 出勤簿の実労時間に自給を掛けて日払い金額を計算。30分未満切捨て。30分以上は自給の1/2。
If Minute(退社 - 出勤) >= 30 Then
日払計算 = Hour(退社 - 出勤) * 時給 + 時給 / 2
Else
日払計算 = Hour(退社 - 出勤) * 時給
End If
End Function
Function 宿泊料算出(対象曜日, 大人, 子供)
'練習問題8 宿泊料を算出。平日は大人1万円、子供5千円。土日は1.2倍。税加算。
Function 宿泊料算出(対象曜日, 大人, 子供) '★下記を参照してください。
'練習問題8 宿泊料を算出。平日は大人1万円、子供5千円。土日は1.2倍。税加算。
' If 対象曜日 = 土曜日 Or 日曜日 Then
'★文字列は""で囲み、引数は囲みません。それからOrの前後は条件を記述しなければなりませんので対象曜日=が必要です。
If 対象曜日 = "土曜日" Or 対象曜日 = "日曜日" Then
宿泊料算出 = ((10000 * 1.2 * 大人) + (5000 * 1.2 * 子供)) * 1.05
Else
宿泊料算出 = ((10000 * 大人) + (5000 * 子供)) * 1.05
End If
End Function
Function 宿泊料算出NEW(対象曜日, 大人宿泊料, 大人人数, 子供宿泊料, 子供人数)
'練習問題8 宿泊料を条件として外だし。
If 対象曜日 = 土曜日 Or 日曜日 Then
宿泊料算出NEW = ((大人宿泊料 * 1.2 * 大人人数) + (子供宿泊料 * 1.2 * 子供人数)) * 1.05
Else
宿泊料算出NEW = ((大人宿泊料 * 大人人数) + (子供宿泊料 * 子供人数)) * 1.05
End If
End Function
Function 役職(Jobclass)
'練習問題9 jobclassに応じて役職,基本給,ボーナスを算出
Select Case Jobclass
Case 0
役職 = "パート"
Case 1
役職 = "一般社員"
Case 2
役職 = "主任"
Case 3
役職 = "課長補佐"
Case 4
役職 = "課長"
Case 5
役職 = "部長"
Case 6
役職 = "次長"
Case Else
役職 = "嘱託"
End Select
End Function
Function 基本給(Jobclass)
'練習問題9 jobclassに応じて役職,基本給,ボーナスを算出
Select Case Jobclass
Case 0
基本給 = 105000
Case 1
基本給 = 200000
Case 2
基本給 = 230000
Case 3
基本給 = 280000
Case 4
基本給 = 300000
Case 5
基本給 = 450000
Case 6
基本給 = 500000
Case Else
基本給 = 0
End Select
End Function
Function ボーナス(Jobclass, 基本給, 査定)
'練習問題9 jobclassに応じて役職,基本給,ボーナスを算出
Select Case Jobclass
Case 0
ボーナス = 0
Case 1
ボーナス = (基本給 * 1.8) + 基本給 * (査定 / 10)
Case 2
ボーナス = (基本給 * 2) + 基本給 * (査定 / 10)
Case 3
ボーナス = (基本給 * 2.3) + 基本給 * (査定 / 10)
Case 4
ボーナス = (基本給 * 2.3) + 基本給 * (査定 / 10)
Case 5
ボーナス = 1200000
Case 6
ボーナス = 0
Case Else
ボーナス = 0
End Select
End Function
Function 支払日(年月日)
'練習問題10 基本支払日が土日だったら月曜にずらす
Select Case Weekday(年月日, vbSunday)
Case 1 '日曜日
支払日 = 年月日 - 2
Case 7 '土曜日
支払日 = 年月日 - 1
Case Else
支払日 = 年月日
End Select
End Function
Function 支払日NEW(年月日, 調整支払日)
'練習問題10 基本支払日が土日だったら月曜にずらす
Select Case Weekday(年月日, vbSunday)
Case 1 '日曜日
If 調整支払日 = "金曜日" Then
支払日NEW = 年月日 - 2
Else
支払日NEW = 年月日 + 1
End If
Case 7 '土曜日
If 調整支払日 = "金曜日" Then
支払日NEW = 年月日 - 1
Else
支払日NEW = 年月日 + 2
End If
Case Else
支払日NEW = 年月日
End Select
End Function
Function 在庫確認(商品CD, 在庫数, 発注済数)
'練習問題11 商品CDの頭文字毎に定められた適正在庫数にするためのアクションを指示。
Select Case Mid(商品CD, 1, 1)
Case "A" '商品コードの先頭が"A"の場合
If 在庫数 + 発注済数 < 10 Then
在庫確認 = 10 - (在庫数 + 発注済数) & "個発注してください"
Else
在庫確認 = "適正在庫"
End If
Case "B" '商品コードの先頭が"B"の場合
If 在庫数 + 発注済数 < 20 Then
在庫確認 = 20 - (在庫数 + 発注済数) & "個発注してください"
Else
在庫確認 = "適正在庫"
End If
Case "C" '商品コードの先頭が"C"の場合
If 在庫数 + 発注済数 < 30 Then
在庫確認 = 30 - (在庫数 + 発注済数) & "個発注してください"
Else
在庫確認 = "適正在庫"
End If
End Select
End Function