• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA「ユーザーフォーム→セルへの入力」ほか)

エクセルVBAユーザーフォームからセルへの入力方法とベルマークの集計方法について

このQ&Aのポイント
  • エクセルVBAを使用して、ユーザーフォームから特定のセルに入力する方法について説明します。
  • さらに、ユーザーフォームを利用してベルマーク番号別の点数別枚数を集計する方法についても解説します。
  • これらの方法を使うことで、エクセルの作業効率を向上させることができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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

takoi424
質問者

お礼

ご回答ありがとうございました・・・ Wendy02様には大変なご迷惑をおかけしてしまいまして本当に申し訳ありませんでした。 これまで私の質問にご回答頂いた皆様にも多大なご迷惑をおかけしていたと思うと今更ですが悔やんでおります。 以後このくだりの質問は控えさせて頂きます。 このたびは大変申し訳ありませんでした。

関連するQ&A