【Excel】足し算の問題を作る

①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<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>

○「採点!」ボタン押下時のソース

Private Sub CommandButton2_Click()
'「採点!」ボタン押下時の処理

'正解なら「〇」不正解なら「×」を表示
If (Val(Label1.Caption) + Val(Label2.Caption) = TextBox1.Text) Then
Label3.Caption = "○"
Else
Label3.Caption = "×"
End If

End Sub

【Excel】表を複数の条件で絞り込む③(二つの列の値から金額を求める)

①価格表を用意

②A列、B列の文字を足し合わせる列を用意
※C3に「=A3&B3」と入力し、12行目までフィルハンドルでコピー
※C列は必要に応じて非表示にする

③価格表に対応する売上シートを用意
※②と同様にC3には「=A3&B3」と入力
※C列は必要に応じて非表示にする

④D列に以下の数式を入力
=IFERROR((VLOOKUP(C3,価格表!$C$3:$D$12,2)),””)

⑤長さ、幅を入力することで金額が求められる

【Excel】単位の自動表示

お金の単位

①右クリックから「セルの書式設定」を選択

②「ユーザー定義」で書式を設定
「[>=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」

【Excel】Excelファイルと同階層の最新フォルダを開く

①マクロを使えるようにする
マクロを使えるようにする」を参照

②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