A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
ユーザーフォームに、TextBox1~TextBox1と、CommandButton1、その他にLabel1とSpinButton1があるとします。
Label1は現在編集中の行です。
SpinButton1は現在編集行を移動するためです。
[ CommandButton1を押した時だけCellを変更する場合 ]
Private Sub setTextBox(row As Long)
'行範囲チェック
If row < 1 Then row = 1
If row > 65536 Then row = 65536
'現在行表示
Label1.Caption = row
'ControlSource設定
TextBox1.Text = Sheet2.Cells(row, 1).Value
TextBox2.Text = Sheet2.Cells(row, 2).Value
TextBox3.Text = Sheet2.Cells(row, 3).Value
TextBox4.Text = Sheet2.Cells(row, 4).Value
TextBox5.Text = Sheet2.Cells(row, 5).Value
'最初はTextBox1を選択
TextBox1.SetFocus
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox1.Text)
'シートの表示(無くてもいい)
Sheet2.Select
Sheet2.Rows(row).Select
End Sub
Private Sub CommandButton1_Click()
Dim row As Long
row = Val(Label1.Caption)
'cell設定
Sheet2.Cells(row, 1).Value = TextBox1.Text
Sheet2.Cells(row, 2).Value = TextBox2.Text
Sheet2.Cells(row, 3).Value = TextBox3.Text
Sheet2.Cells(row, 4).Value = TextBox4.Text
Sheet2.Cells(row, 5).Value = TextBox5.Text
'次の行へ
setTextBox Val(Label1.Caption) + 1
End Sub
Private Sub UserForm_Activate()
setTextBox 1
End Sub
Private Sub SpinButton1_SpinDown()
setTextBox Val(Label1.Caption) + 1
End Sub
Private Sub SpinButton1_SpinUp()
setTextBox Val(Label1.Caption) - 1
End Sub
[ ControlSourceを設定して、TextBoxを変更すると同時にCellも変更する場合 ]
Private Sub setControlSource(row As Long)
'行範囲チェック
If row < 1 Then row = 1
If row > 65536 Then row = 65536
'現在行表示
Label1.Caption = row
'ControlSource設定
TextBox1.ControlSource = "Sheet2!A" & Trim(Str(row))
TextBox2.ControlSource = "Sheet2!B" & Trim(Str(row))
TextBox3.ControlSource = "Sheet2!C" & Trim(Str(row))
TextBox4.ControlSource = "Sheet2!D" & Trim(Str(row))
TextBox5.ControlSource = "Sheet2!E" & Trim(Str(row))
'最初はTextBox1を選択
TextBox1.SetFocus
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox1.Text)
'シートの表示(無くてもいい)
Sheet2.Select
Sheet2.Rows(row).Select
End Sub
Private Sub CommandButton1_Click()
setControlSource Val(Label1.Caption) + 1
End Sub
Private Sub UserForm_Activate()
setControlSource 1
End Sub
Private Sub SpinButton1_SpinDown()
setControlSource Val(Label1.Caption) + 1
End Sub
Private Sub SpinButton1_SpinUp()
setControlSource Val(Label1.Caption) - 1
End Sub
No.3
- 回答日時:
ANo.2です。
>ボタンを押してTexBoxに入力したデータをSheet2のそれぞれのセルに入力・・・
書いた通りで、私の説明した方法は、TexBoxと特定のセルを関連付ける方法で、ボタンを押しません(押す必要がありません)。
質問の「sheet2の複数のセル」、補足の「Sheet2のそれぞれのセル」と言う言葉がいろいろ解釈できるのでわからないのですが・・・
TextBox1 -> sheet2のA1 というような、「それぞれのtextboxをそれぞれの決まったセルに関連付ける」場合は、私の方法が簡単だと思います。
フォームの設計画面でTextBox1を選択して、プロパティウインドのControlSourceの所に「sheet2!A1」と書き込む。
ボタンを押すと、
TextBox1 -> A1
TextBox2 -> B1
・・・
TextBox5 -> E1
次にボタンを押すと、
TextBox1 -> A2
TextBox2 -> B2
・・・
次にボタンを押すと、
TextBox1 -> A3
TextBox2 -> B3
・・・
と言うようなことを「それぞれのセル」と言うなら、ANo.1さんの方法を使うことになります。
こんな説明でわかってもらえますか?(説明が苦手だ、長くなる)
この回答への補足
ボタンを押すと、
TextBox1 -> A1
TextBox2 -> B1
・・・
TextBox5 -> E1
次にボタンを押すと、
TextBox1 -> A2
TextBox2 -> B2
・・・
次にボタンを押すと、
TextBox1 -> A3
TextBox2 -> B3
・・・
このように入力するには
Sheets("Sheet2").Cells(1,1).Value=TextBox1.Text
このコードをどこに打てばいいのですか?
No.2
- 回答日時:
>textboxを5つ設置したユーザーフォームを作りました。
>textboxに入力したデータがsheet2の複数のセルにデータ入力されるようにしたい
と言うのが、
TextBox1 -> sheet2!A1
TextBox2 -> sheet2!A2
・・・
TextBox5 -> sheet2!A5
という風に、TextBoxの値をsheet2の特定のセルに代入したいのなら、TextBoxのControlSourceプロパティを設定すれば、ボタンを押さなくても常時sheet2のセルを更新できますよ。
たとえば、TextBox1のControlSourceをsheet2!A1にすると、textbox1の内容の変更がリアルタイムでsheet2のA1に反映されます。
この回答への補足
ボタンを押してTexBoxに入力したデータをSheet2のそれぞれのセルに入力されるようにしたいのですが、詳しく教えてもらえないでしょうか?
補足日時:2007/12/06 22:49お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Visual Basic(VBA) VBAで重複データを確認したい 5 2022/10/07 16:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力したセル番地をメッセージ...
-
特定のセルが空白だったら、そ...
-
Excelで指定した日付から過去の...
-
VBAでセル同士を比較して色付け
-
【Excel】指定したセルの名前で...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
【VBA】カーソルのある行の1行...
-
指定した条件で行セルを非表示...
-
任意フォルダから画像をすべて...
-
【Excel】セルの背景色、文字色...
-
【Excel VBA】指定行以降をクリ...
-
エクセルマクロでアニメを作る...
-
DataGridViewで右寄せ左寄せが...
-
テキストボックスに入力したデ...
-
重複しない乱数
-
置換文字を連番で振りたい
-
特定の文字を条件に行挿入とそ...
-
ExcelVBA:オートフィルタをかけ...
-
Excel2013,2016 マクロの動作が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
TODAY()で設定したセルの日付...
-
EXCELで変数をペーストしたい
-
Excel VBA、 別ブックの最終行...
-
Excelのプルダウンで2列分の情...
-
VBA コピーして次の値まで貼り...
-
screenupdatingが機能しなくて...
-
エクセルVBAでコピーして順...
-
VBA初心者です。結合セルを保持...
-
セル色なしの行一括削除
-
VBAでセルをクリックする回...
-
Excel vbaで特定の文字以外が入...
-
DataGridViewの各セル幅を自由...
-
特定の文字を条件に行挿入とそ...
-
【VBA】指定したセルと同じ値で...
おすすめ情報