解決済み
Excelに関して質問です。 私は製造業で働いていますが、出荷数量を重量計に乗せて計って、◯なら次の工程へ ☓なら再検査という作業があります。その◯☓をExcelで管理しているのですが、作業員の方には◯☓をしっかり見ててから次の製品を計って下さいと伝えながらも、基本的には◯が表示される上に流れ作業で次から次へと製品が流れてくるので、どれが最新の◯なのか分かりづらいと言われています。 作業の流れとしては ①重量計で計る ②重量がExcelに反映される ③規定値かどうかで◯☓が表示される ④確認後に次の製品を乗せる の繰り返しです。 そこで ⑤最新の◯☓判定が表示された際に3秒間(秒数は任意で変更可だと助かります)◯☓を拡大表示させる を③と④の間に入れたいのですが、どうやれば出来ますか? 関数でもマクロでも構いません イメージ画像を添付します。 よろしくお願い致します。
251閲覧
これで行けるかなぁ? 質問だと③でC列5行目以下に◯または×が自動で入ると思われます。 そこで、シートのWorksheet_Changeイベントが起こると思うので、シートのWorksheet_Changeイベントに以下を。 ★準備 ActiveXのラベルを1つシートに配置して下さい。 オブジェクト名は、必ず「Label1」にして下さい。 <---部分は、実態に応じて変更して下さい。 ★注意 どの数値もマイナスの数値は不可です。エラーになります。 Const LimitTime = 3000 '<---表示秒数(単位:ミリ秒) Const OffsetL = 10 '<---表示位置の調整(左右) Const OffsetT = 10 '<---表示位置の調整(上下) Const TargetCol = 3 '<---◯×の入る列 Const TargetRow = 5 '<---◯×の入る最初の行No Const FontSize = 100 '<---表示サイズ Dim R, C Dim StartTime If Target(1).Column = TargetCol And Target(1).Row >= TargetRow Then With Label1 .Font.Size = FontSize .Font.Bold = True .BorderStyle = fmBorderStyleSingle .AutoSize = True .Caption = Target(1).Text R = ActiveWindow.ScrollRow C = ActiveWindow.ScrollColumn .Left = Cells(R, C).Left + OffsetL .Top = Cells(R, C).Top + OffsetT Select Case Target(1).Text Case "◯": .BackColor = 16776960 Case "×": .BackColor = 255 Case Else: Exit Sub End Select .Visible = True StartTime = Timer * 1000 Do: DoEvents If Timer * 1000 - StartTime > LimitTime Then .Visible = False Exit Do End If Loop End With End If
手元にEXCELないので試せてませんが、こんな感じでどうでしょう? 元の表が入っているシートを"シート表"とします。 大きく〇を書いた"シート〇"と大きく×を書いた"シート×"とします。 VBEで"シート表"に以下のコードを書きます。 Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Value Case "〇" Worksheets("シート〇").Activate Case "×" Worksheets("シート×").Activate End Select Application.Wait (Now + TimeValue("00:00:03")) Worksheets("シート表").Activate End Sub
>②重量がExcelに反映される ↑はどのようにして行っていますか? >関数でもマクロでも構いません 使用しているExcelのバージョンは?
< 質問に関する求人 >
製造業(東京都)この条件の求人をもっと見る
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
覆面調査に関する求人(東京都)この条件の求人をもっと見る