エントリー

入力ウインドウ

UserForm1の内容です。
ファイル 251-1.jpg

ラベルで表示項目を設定します。
そして、左上にTextBox と CommandButtonを配置し、CommandButtonに以下のVBAを設定します。

Private Sub CommandButton1_Enter()
    msg = TextBox1.Text
    
    command_data = Mid(msg, 1, 1)
    data = Mid(msg, 2, 2)
    If "." = Right(data, 1) Then
        data = Mid(msg, 2, 1)
    End If
    
    If command_data = "@" Then
        command_data = Mid(msg, 2, 1)
        data = Mid(msg, 3, 2)
        If "." = Right(data, 1) Then
            data = Mid(msg, 3, 1)
        End If
    End If
    
    If command_data = "?" Then
        
        data_no = Val(data)
        Label9 = data_no
        
        Label6 = Worksheets("得点記入用紙").Range("K" & data_no)
        Label7 = Worksheets("得点記入用紙").Range("L" & data_no)
        Label8 = Worksheets("得点記入用紙").Range("M" & data_no)
        Label1 = Worksheets("得点記入用紙").Range("N" & data_no)
        Label2 = Worksheets("得点記入用紙").Range("O" & data_no)
        
        If Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("P" & data_no).Value, Worksheets("得点記入用紙").Range("Q" & data_no).Value) = "" Then
            Label4.BackColor = &HE0E0E0
            Label5.BackColor = &HE0E0E0
            Label4 = "入力待ち(左側)"
            Label5 = "入力待ち(右側)"
        Else
            Label4.BackColor = &H80FFFF
            Label5.BackColor = &H80FFFF
            Label5 = Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("P" & data_no), Worksheets("得点記入用紙").Range("Q" & data_no))
            Label4 = Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("R" & data_no), Worksheets("得点記入用紙").Range("S" & data_no))
        End If
        TextBox1.Text = ""
        TextBox1.SetFocus
    ElseIf command_data = ";" Then
        If Label9 <> "" Then
            data_no = Val(Label9)
            If data = "M1" Then
                Label4.BackColor = &H80FFFF
                Label5.BackColor = &H80FFFF
                Label4 = "△"
                Label5 = "△"
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("P" & data_no), Worksheets("得点記入用紙").Range("Q" & data_no)).Value = Label4
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("R" & data_no), Worksheets("得点記入用紙").Range("S" & data_no)).Value = Label5
                TextBox1.Text = ""
                TextBox1.SetFocus
                Unload UserForm1
                Worksheets("進行状況").PrintOut ActivePrinter:=Worksheets("Option").Range("B10").Value
                Worksheets("対戦表").PrintOut ActivePrinter:=Worksheets("Option").Range("B9").Value
            ElseIf data = "L3" Then
                Label4.BackColor = &H80FFFF
                Label5.BackColor = &H80FFFF
                Label4 = "○"
                Label5 = "×"
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("P" & data_no), Worksheets("得点記入用紙").Range("Q" & data_no)).Value = Label4
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("R" & data_no), Worksheets("得点記入用紙").Range("S" & data_no)).Value = Label5
                TextBox1.Text = ""
                TextBox1.SetFocus
                Unload UserForm1
                Worksheets("進行状況").PrintOut ActivePrinter:=Worksheets("Option").Range("B10").Value
                Worksheets("対戦表").PrintOut ActivePrinter:=Worksheets("Option").Range("B9").Value
            ElseIf data = "L0" Then
                Label4.BackColor = &H80FFFF
                Label5.BackColor = &H80FFFF
                Label4 = "×"
                Label5 = "○"
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("P" & data_no), Worksheets("得点記入用紙").Range("Q" & data_no)).Value = Label4
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("R" & data_no), Worksheets("得点記入用紙").Range("S" & data_no)).Value = Label5
                TextBox1.Text = ""
                TextBox1.SetFocus
                Unload UserForm1
                Worksheets("進行状況").PrintOut ActivePrinter:=Worksheets("Option").Range("B10").Value
                Worksheets("対戦表").PrintOut ActivePrinter:=Worksheets("Option").Range("B9").Value
            ElseIf data = "R0" Then
                Label4.BackColor = &H80FFFF
                Label5.BackColor = &H80FFFF
                Label4 = "○"
                Label5 = "×"
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("P" & data_no), Worksheets("得点記入用紙").Range("Q" & data_no)).Value = Label4
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("R" & data_no), Worksheets("得点記入用紙").Range("S" & data_no)).Value = Label5
                TextBox1.Text = ""
                TextBox1.SetFocus
                Unload UserForm1
                Worksheets("進行状況").PrintOut ActivePrinter:=Worksheets("Option").Range("B10").Value
                Worksheets("対戦表").PrintOut ActivePrinter:=Worksheets("Option").Range("B9").Value
            ElseIf data = "R3" Then
                Label4.BackColor = &H80FFFF
                Label5.BackColor = &H80FFFF
                Label4 = "×"
                Label5 = "○"
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("P" & data_no), Worksheets("得点記入用紙").Range("Q" & data_no)).Value = Label4
                Worksheets("対戦表").Cells(Worksheets("得点記入用紙").Range("R" & data_no), Worksheets("得点記入用紙").Range("S" & data_no)).Value = Label5
                TextBox1.Text = ""
                TextBox1.SetFocus
                Unload UserForm1
                Worksheets("進行状況").PrintOut ActivePrinter:=Worksheets("Option").Range("B10").Value
                Worksheets("対戦表").PrintOut ActivePrinter:=Worksheets("Option").Range("B9").Value
            ElseIf data = "CA" Then
                TextBox1.Text = ""
                TextBox1.SetFocus
                Unload UserForm1
            End If
        End If
    Else
        TextBox1.Text = ""
        TextBox1.SetFocus
    End If
End Sub

Private Sub UserForm_Activate()
    TextBox1.SetFocus
End Sub

まず、このフォームを表示する時に、必ずTextBoxにフォーカスが来るようにします。

その後、TabIndexを、TextBox CommandButtonの順に設定しておきます。

バーコードの入力は、必ずCRを最後に付けるようにしていますので、TextBoxに読み込んだデータを入れて、フォーカスはTextBoxからCommandButtonに移動します。

CommandButtonにフォーカスが移動すると、VBAが走り入力処理を行います。

さて、実際の内容ですが、得点記入用紙には、@?3. と入っています。
@はフォーム表示命令
?は対戦結果の読み出し命令
3は対戦順を
.はENDです。

この読込により、得点記入用紙のデータをリーグ表から取り込んで表示させます。

次に、得点入力ですが、;R3 というような設定を入力します。
;入力コマンド命令
R右側(Lは左側、Mは引き分け)
3勝ち点(勝ちは3、引き分けは1、負けは0です)

入力された反対側は、計算で出ますので自動で入力を行います。
あとは、この入力されたデータをリーグ表に戻せば完了です。

途中、PrintOutが幾つかありますが、これはプロジェクタ等の掲示用で、JPEGデータを作成するためのものです。(仮想プリンタを使っています)
詳しいことは、OPTONの方で説明します。

もう一つ、フォームがあります。
ファイル 251-2.jpg

このフォームは、データを呼び出さずに、得点入力をした時のキャンセル用です。

Private Sub CommandButton1_Enter()
    Unload UserForm2
End Sub

Private Sub UserForm_Activate()
    TextBox1.SetFocus
End Sub

;コマンドが入力された時に表示され、ひたすら入力を捨てます。

さて、次回は順位シートです。

ページ移動

トラックバック

  • トラックバックはまだありません。

トラックバックURL

http://furemani.daa.jp/blog/index.php/trackback/251

コメント

  • コメントはまだありません。

コメント登録

  • コメントを入力してください。
登録フォーム
名前
メールアドレス
URL
コメント
閲覧制限

ユーティリティ

新着コメント

Re:2017ふれまにっ杯募集
2017/01/30 from tatsuru3284
Re:ついに
2016/03/18 from redinpules.stt.TV
Re:ついに
2016/03/17 from Tatsuru
Re:ついに
2016/03/17 from redinpules.stt.TV
Re:県オープンの余韻
2016/02/18 from Tatsuru

過去ログ

Feed