このトピックに書きこむ |
---|
Re[4]: アルコールチェック | |
---|---|
[196041] Re[4]: アルコールチェック- ■ / 記事引用/メール受信=OFF■ □投稿者/ mi -(2023/12/12(13:04)) □U R L/ 返事が遅くなりましてすみません。 仕事時間内にて修正していました。 匿名さん 見ていただきありがとございました。 boxに名前を出すのにどのコードを使用すれば いいかヒント聞きたかったです。 特命さん 見ていただきありがとうございます。 このフォーマットは会社で決められてるので 自分では変更できません。 また法令のアルコールチェックなので朝と夕方あるので 毎日の事なのでコード又は関数に関するヒントが欲しかったです。 kazuoさん 見ていただきありがとうございます。 またコードを書いていただきありがとうございました。 ほぼそのまま使わせてもらいました。 人によって毎日10〜30人も誰が登録していないか 確認するのが大変でしたので助かりました。 |
[196040] Re[3]: アルコールチェック- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/12/11(08:45)) □U R L/ msboxシートに全員の名前とチェック済み有無の数式を書いて置けば、 マクロではシートを表示させ、オートフィルターするだけで良いと思います。 その一例です Const SHNAME = "アルコールチェック" Const msbox = "msbox" Sub test() If Not Evaluate("isref(" & SHNAME & "!a1)") Then dataset 'この行不要 With Worksheets(msbox) .Activate .Unprotect .Range("A:B").AutoFilter 2, "0" .Protect AllowFiltering:=True, UserInterfaceOnly:=True '他の人に弄られないようにするため End With End Sub '以下は不要 Private Sub dataset() Dim sh As Worksheet Dim n As Long, i As Long Dim rng As Range n = 15 Set sh = Worksheets.Add With sh .Name = msbox .Range("A1") = "名前" For i = 2 To n + 1 .Cells(i, 1).Value = Chr(i - 2 + Asc("A")) & "さん" Next End With With Worksheets.Add .Name = SHNAME For i = 1 To Day(Date) Set rng = .Cells(.Rows.Count, "C").End(xlUp).Offset(1) rng.Resize(n) = "=rand()" sh.Range("a2").Resize(n).Copy rng.Offset(, -2) rng.Offset(-1, -2).Resize(n + 1, 3).Sort rng, xlAscending, Header:=xlYes rng.Resize(n).Value = Month(Date) & "/" & i rng.Offset(WorksheetFunction.RandBetween(n - 5, n), -2).Resize(n, 3).ClearContents Next rng.Offset(WorksheetFunction.RandBetween(n - 10, n - 5), -2).Resize(n, 3).ClearContents End With With sh .Range("B1").Formula = "=today()" .Range("B2").Resize(n).Formula = "=COUNTIFS(" & SHNAME & "!A:A,msbox!A2," & SHNAME & "!C:C,msbox!B$1)" ' .Range("A1").CurrentRegion.AutoFilter 2, "0" .Protect AllowFiltering:=True, UserInterfaceOnly:=True End With End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[196039] Re[2]: アルコールチェック- ■記事引用/メール受信=OFF■ □投稿者/ 特命 -(2023/12/10(14:35)) □U R L/ ファイルのフォーマットを変更しましょう! 名前・日付を縦方向に持たせるのではなく 名前を縦方向 日付を横方向に持たせるようにしましょう。 その方が見やすくなります。 A列 B列 C列 1 山田 12/10 2 砂糖 12/10 3 田中 12/10 4 砂糖 12/11 5 山田 12/11 ではなく A列 B列 C列 D列 1 12/10 12/11 2 山田 チェック チェック 3 砂糖 チェック チェック 4 田中 チェック のような感じで。 |
[196038] Re[1]: アルコールチェック- ■記事引用/メール受信=OFF■ □投稿者/ 匿名 -(2023/12/08(10:08)) □U R L/ >msboxに出すには何を使えばいいですか? Msgbox関数 又は フォームコントロールでメッセージボックスを自作する |
[196037] アルコールチェック- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ mi -(2023/12/07(16:43)) □U R L/ 連投ですみません。 この12月からアルコールチェックが始まりました。 会社からエクセルシートが回ってきて部署にて管理となりました。 そこで A列に名前 C列に日付があります。 これから毎日チェックですが、名前が登録した順番なので 誰がまだ登録していなか見るのがちょっと面倒です。 その日登録してない人をmsboxに出すには何を使えばいいですか? |