Excelでユーザーフォームを作りました。
ユーザーフォームには、テキストボックスを2個、ボタンを1個("記入"という文字が入っています)置いてあります。
テキストボックスに入れた数値をSheet1のセル"C24","C25"に転記したいので、ユーザーフォームのコードを次のようにしましたが、エラーメッセージは出ないかわりに何も動いてくれません。
「どこ」と「なに」が違いどうするのが正しいのか教えて下さい。よろしくお願いします。
Private Sub Tbox1_Change()
a = Tbox1.Value
End Sub
----------------------------
Private Sub Tbox2_Change()
b = Tbox2.Value
End Sub
----------------------------
Sub 記入Button_Click()
'入力値をSheet1に転記
Dim a As Range
Dim b As Range
Sheets("Sheet1").Select
Set a = Range("C24")
Set b = Range("C25")
End Sub
No.3ベストアンサー
- 回答日時:
こんにちは。
>Sheet1のセル"C24","C25"に転記
なら、単に、TextBox のそれぞれのControlSource に、Sheet1!C24, Shee1!C25
と書けばよいのですが。
ただ、#2さんも触れていますが、初歩的な基礎がまだ足りないようですね。1週間もすれば、この程度のコードは書けるようになりますから、何か、適当な参考書を手に入れて参照したほうがよいです。
変数のプロパティ ← 値
Set オブジェクトの変数 =実際のセル
こうして変数に格納されます。
Wendy02さん ありがとうございました。簡単なんですね。
ControlSourceをまだ知りませんでした。勉強いたします。
次にボタン2 の Control に移ります。またよろしくお願いします。
No.4
- 回答日時:
Rangeの概念はよく分からないのですが、
気が付いたのは、
・a,bがプロシャージャーレベル変数であるので、
プロシャージャ[記入Button_Click(])内でしか使えず
Tbox■_changeで使用するためには、モジュールレベル変数にして、
そのモジュール全体で使用できる必要があると思います.
・オブジェクト型変数 Renge に value は代入できないのでは?
(こっちが微妙)
valueで代入するなら、変数宣言をintegerにしてみてはいかがでしょうか?
と思います.
よって、私が直したモジュールは、
---------------------------------------
Dim a As Integer'モジュールレベル変数
Dim b As Integer
Private Sub TBox1_Change()
a = TBox1.Value
End Sub
Private Sub TBox2_Change()
b = TBox2.Value
End Sub
Private Sub 記入Button_Click()
Sheets("Sheet1").Select
Range("C24") = a
Range("C25") = b
End Sub
-------------------------------------
また、今回の処理では、TBox■_Change()はあまり意味をなしません.
さらに、changeで毎回監視をしている場合、複雑な処理をする時に、
コンピュータがさらに遅くなる場合があります.
よって、tbox■_change()のプロシャージャは消去して
-----------------------------------------
Private Sub 記入Button_Click()
Dim a As Integer
Dim b As Integer
Sheets("Sheet1").Select
b = TextBox2.Value
a = TextBox1.Value
Range("C24") = a
Range("C25") = b
End Sub
-------------------------------------
または
-------------------------------------
Private Sub 記入Button_Click()
Dim a As Integer
Dim b As Integer
Sheets("Sheet1").Select
Range("C24") = TBox1.Value
Range("C25") = TBox2.Value
End Sub
-------------------------------------
だけでも良いと思います
もちろん、#1さんの形がプログラムとして一番奇麗だと思います
#1さんの Tbox1 と Tbox2 の後に.value を付けたら、数字として使用できると思います.(未確認)
No.2
- 回答日時:
何も動かないのではなく、指示された通りに動作しただけです。
>「どこ」と「なに」が違いどうするのが正しいのか教えて下さい。よろしくお願いします。
変数の使い方、使われ方の理解が無いですね。
>a = Tbox1.Value
「Sub Tbox1_Change()」内部で定義した a と言う変数に値を格納。し、プロシージャの終了とともに消滅。
>Set a = Range("C24")
「Sub 記入Button_Click()」内部で定義した a と言う変数にセルC24を定義(セット)し、プロシージャの終了とともに消滅。
双方の a と言う変数は全く無関係な変数なので、同じ値を共有する事は出来ません。
また、双方とも変数への格納なので、変数の値をどこかに格納する記述がありません。
プロシージャ間で変数を共有する場合は「グローバル変数」を定義する必要があります。
hana-hana3さん ありがとうございました。
ControlSource の記述で、とりあえずの問題は片付きました。
変数のこと、いただいた解説でだんだんわかってきました。勉強いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBA リスト表示していますが 3 2023/05/18 12:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
首吊りどこ締めるの
-
射精をして1週間以内に尿検査を...
-
変な話しになります。尿検査で...
-
白血球が多いとどんな心配があ...
-
今朝、毎朝の習慣でオナニーし...
-
1日前の検尿
-
検便についてです。 便は取れた...
-
男です。昨日の午後3時くらいに...
-
勃起する時って痛いんですか? ...
-
EXCELで条件付き書式で空白セル...
-
腕を見たら黄色くなってる部分...
-
彼女のことが好きすぎて彼女の...
-
中出しをするとお腹が痛い・・・。
-
小数点以下を繰り上げたものを...
-
EXCELで式からグラフを描くには?
-
2つの数値のうち、数値が小さい...
-
値が入っているときだけ計算結...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
中出しをするとお腹が痛い・・・。
-
麻疹風疹の抗体検査結果につい...
-
エクセルでエラーが出て困って...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
至急!尿検査前日にオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子が黄色?
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
健否~書類の書き方~
-
甲状腺が腫れているが血液検査...
-
はしかの抗体検査は何科の病院...
-
テスターで断線を調べる方法教...
おすすめ情報