①各種表を作成
②「作業時間」を算出する関数を入力
C8に「=NUMBERVALUE((B8-A8)*24)」
③「見積り金額」を算出する関数を入力
D8に「=IFERROR(VLOOKUP(C8,$F$8:$G$20,2,FALSE)+IF(AND(B8>$I$8,B8<=$I$9),$J$8,IF(B8>$I$9,$J$9,0)),””)」
①UserFormの作成
②各ボタン押下時の処理を記載
※例外処理は省略
○「出題!」ボタン押下時のソース
Private Sub CommandButton1_Click() '「出題!」ボタン押下時の処理 '一つ目のラベルに乱数をセット(1~9) Label1.Caption = Str(Int(9 * Rnd + 1)) '二つ目のラベルに乱数をセット(1~9) Label2.Caption = Str(Int(9 * Rnd + 1)) '回答入力欄にフォーカスセット TextBox1.SetFocus '正解判定ラベルを空に Label3.Caption = "" End Sub&amp;lt;span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"&amp;gt;&amp;lt;/span&amp;gt;○「採点!」ボタン押下時のソース
Private Sub CommandButton2_Click() '「採点!」ボタン押下時の処理 '正解なら「〇」不正解なら「×」を表示 If (Val(Label1.Caption) + Val(Label2.Caption) = TextBox1.Text) Then Label3.Caption = "○" Else Label3.Caption = "×" End If End Sub
①右クリックから「セルの書式設定」を選択
②「ユーザー定義」で書式を設定
「[>=100000000]0″億”###0″万”###0;[>=10000] ###0″万”###0; 0」を設定
③入力した数字に応じて単位が付与される
①「お金の単位」と同様に以下の書式を設定
「[>=10000] #0″hour”#0″min”#0″sec”; [>=100] #0″min”#0″sec”; #0″sec”」
※日本語表記の場合は「[>=10000] #0″時間”#0″分”#0″秒”; [>=100] #0″分”#0″秒”; #0″秒”」
②入力した数字に応じて単位が付与される
ex) 「120」 = 「1min20sec」
①マクロを使えるようにする
「マクロを使えるようにする」を参照
②FileSystemObjectを利用するため、「Microsoft Scripting Runtime」を参照
ライブラリの参照方法は「ライブラリを参照する」を参照
③必要に応じてボタン配置
ボタンの配置方法は「表を複数の条件で絞り込む②」を参照
④Microsoft Visual Basic for Applications」にて以下のコードを記載
Sub ボタン1_Click() Dim fso As FileSystemObject Set fso = New FileSystemObject 'Excelファイルが配置されているフォルダを取得 Dim pfl As Folder Set pfl = fso.GetFolder(ActiveWorkbook.Path) 'Excelファイルと同じ階層にフォルダがなければ処理を終了 If pfl.SubFolders.Count = 0 Then Set fso = Nothing Exit Sub End If '最終的に開くフォルダ Dim ofl As Folder '日付を確認するために一時的に取得するフォルダ Dim tfl As Folder 'サブフォルダ分日付を検証 For Each tfl In pfl.SubFolders '初回のみoflに代入 If ofl Is Nothing Then Set ofl = tfl End If 'tflの更新日付がoflよりも大きければoflに代入(作成日時で比較の場合は「DateCreated」を使用) If ofl.DateLastModified < tfl.DateLastModified Then Set ofl = tfl End If Next '一番更新日付が大きいoflを起動 Shell "C:\Windows\explorer.exe " & ofl.Path, vbNormalFocus End Sub