- ベストアンサー
エクセルVBAユーザーフォームからセルへの入力方法とベルマークの集計方法について
- エクセルVBAを使用して、ユーザーフォームから特定のセルに入力する方法について説明します。
- さらに、ユーザーフォームを利用してベルマーク番号別の点数別枚数を集計する方法についても解説します。
- これらの方法を使うことで、エクセルの作業効率を向上させることができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こちらでは、どこまで作っているのか分からないし、質問をすべてみましたが、それぞれが、セルの位置に共通性がないようです。今回は、どうやら図をみてコードを作ってください、という意味のようですが、回答者のスキルを試すような質問は、できるだけ避けてほしいのです。 今回、こちらはコントロールの名前は、左から順次に付けられています。Button1 が上でButton2 は下に位置しています。SpinBotton1 の プロパティのMin は、なるべく 0でなく1からにしてください。忘れても、エラーは出さないようにしています。 シートは、Sheet1 という名称 A1の1列目から、 1年1組 1年2組 1年3組・・・ というスタイルになっています。 >ベルマーク番号別の「点数別(0.1点・0.2点・・・)枚数」 まず、シートのレイアウトから決めてください。今の出力スタイルでは出来ません。 Const stRow As Long = 1 '初期行(1=>2行目) Const stCol As Long = 1 '初期列(1=>1列目) Private Sub UserForm_Initialize() 'ComboBox の登録 Dim i As Variant 'シートの選択 Worksheets("Sheet1").Select SpinButton1.Value = 1 TextBox1.Text = Format$(1, "00") SpinButton2.Value = 0 TextBox2.Text = Format$(0, "0.0") SpinButton3.Value = 0 TextBox3.Text = "0" With ComboBox1 For i = 1 To Cells(1, Columns.Count).End(xlToLeft).Column .AddItem Worksheets("Sheet1").Cells(1, i) '組名を取る Next .ListIndex = 0 '初期列 End With End Sub Private Sub SpinButton1_Change() Dim i As Long Dim j As Long With TextBox1 .Text = Format$(SpinButton1.Value, "00") End With i = Val(TextBox1.Text) + stRow j = ComboBox1.ListIndex + stCol If i > 0 Then Cells(i, j).Select End If End Sub Private Sub SpinButton2_Change() With TextBox2 .Text = Format$(SpinButton2.Value / 10, "0.0") TextBox4.Text = Val(TextBox2.Text) * Val(TextBox3.Text) End With End Sub Private Sub SpinButton3_Change() With TextBox3 .Text = SpinButton3.Value TextBox4.Text = Val(TextBox2.Text) * Val(.Text) End With End Sub Private Sub CommandButton1_Click() '入力の反映/変更 Dim i As Long '行 Dim j As Long '列 i = Val(TextBox1.Text) + stRow j = ComboBox1.ListIndex + stCol If i > 0 Then Cells(i, j).Value = TextBox4.Text TextBox4.ControlSource = Cells(i, j).Address End If End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub ComboBox1_Change() Dim i As Long '行 Dim j As Long '列 i = Val(TextBox1.Text) + stRow j = ComboBox1.ListIndex + stCol If j > 0 And i > 0 Then Cells(i, j).Select End If End Sub
お礼
ご回答ありがとうございました・・・ Wendy02様には大変なご迷惑をおかけしてしまいまして本当に申し訳ありませんでした。 これまで私の質問にご回答頂いた皆様にも多大なご迷惑をおかけしていたと思うと今更ですが悔やんでおります。 以後このくだりの質問は控えさせて頂きます。 このたびは大変申し訳ありませんでした。