質問のタイトルからして、何の質問という感じで
すみません。TextBox1.TextをTextBox10.Textまでつくり
cells(1,1)=TextBox1.Text
l
l
cells(1,10)=TextBox10.Text
各セルにTextBoxの内容を書き込みたいのです。セルとテキストの変化
部分をそれぞれ、変数1、変数2とおいてFor~Next なりDo until loop
なりで、変数を変化させようと思いました。cells(1,変数1)の指定
は上手くいったのですが、TextBox変数2.Textの指定がうまくいきません。
TextBox変数2.Textについてどのように変数の設定をしたら、良いでしょうか?
そもそも、TextBox1.Textの数字部分【1】は変数に指定できないのでしょうか?
すみませんが教えてください。EXCEL2000を使っています。
No.2
- 回答日時:
VBと違って、VBAではコントロール配列が使えません。
対応方法としては、1.Collectionオブジェクトを作る
2.WithEvents(クラス)を利用
3.直接コントロール名(テキストボックス名)を利用
が考えられます。
この質問では、TextBox1~TextBox10となっているので、3のテキストボックス名を使ってみます。
テキストボックスはシート上にあってもユーザーフォーム上にあっても同じ考え方でできるでしょう。
2については、
『VBAのフォームでTextBoxがいっぱいある時』
http://www.okweb.ne.jp/kotaeru.php3?q=261042
を参考にして下さい。
標準モジュールに貼り付け
↓
Sub Test01()
Dim myTxt As OLEObject 'TextBox
Dim txtNo As Integer 'テキストボックスの番号
Dim colNo As Integer '列
'アクティブシートのオブジェクトを調べる
For Each myTxt In ActiveSheet.OLEObjects
'テキストボックスだったら
If TypeName(myTxt.Object) = "TextBox" Then
'TextBox名の数値部分を取り出す
txtNo = Application.Substitute(myTxt.Name, "TextBox", "")
'TextBox1~TextBox10だったら
If 1 <= txtNo And txtNo <= 10 Then
'変数1=変数2 にした
colNo = txtNo
'セルに書き出す
Cells(1, colNo) = myTxt.Object.Value
End If
End If
Next
End Sub
参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=261042
この回答への補足
すみません。教えた頂いた内容を元に、試行錯誤したのですがうまくアイデアが
浮かびませんでした。
実は、
(1)TextBox1.Textに入力した内容をWorksheets("sheet1").Cells(Y, 2)
と比較する。
(2)内容が一致していたらWorksheets("sheet2")のCells(Y, 3)にWorksheets("sheet1")のCells(Y, 3)情報をセットする。
(3)さらにTextBox11.TextにWorksheets("sheet1")のCells(Y, 3)情報を表示させるようにしたかったのです。
For Y = 3 To 10
X = Worksheets("sheet1").Cells(Y, 2) Like TextBox1.Text
If X = True Then
Worksheets("sheet2").Cells(Y, 3)=Worksheets("sheet1").Cells(Y, 3)
TextBox11.Text = Worksheets("sheet1").Cells(Y, 3)
End If
Next
次にTextBox2.TextはTextBox12.Text
次にTextBox3.TextはTextBox13.Text
とTextBox10.TextはTextBox20.Textまで同様のことをやらせたかったのです。
TextBoxの数字が変数にならないので、同様のプログラムを10個書いています。
度々お手数をおかけいたします。
VBAを始めたばかりの初心者でこれを理解するのにもう少し自分で勉強の必要
があるかと思います。詳細なご説明どうもありがとうございました。
参考にさせて頂きたいと思います。
No.3ベストアンサー
- 回答日時:
書いてみましたが、シート上のコントロールツールボックスのテキストボックスでしょうか。
一番面倒な場合かもしれませんね。
今から出かけますので、数日間連絡できません。ご容赦を。
補足を反映したつもりですが、時間がなくて推敲不足です。別法もありそう?(Excel2000です)
↓
Sub Test02()
Dim ws1 As Worksheet 'ワークシート1
Dim ws2 As Worksheet 'ワークシート2
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
Const y0 = 2
Dim myTxt As OLEObject 'TextBox
Dim myTxt2 As OLEObject 'TextBox
Dim txtNo As Integer 'テキストボックスの番号
Dim txtNo2 As Integer 'テキストボックスの番号
Dim colNo As Integer '列
'テキストボックス11~20をクリア
For Each myTxt2 In ws1.OLEObjects
If TypeName(myTxt2.Object) = "TextBox" Then
txtNo2 = Application.Substitute(myTxt2.Name, "TextBox", "")
If 11 <= txtNo2 And txtNo2 <= 20 Then
myTxt2.Object.Text = ""
End If
End If
Next
'比較してセルとテキストボックスの値を更新する
For Each myTxt In ws1.OLEObjects
If TypeName(myTxt.Object) = "TextBox" Then
txtNo = Application.Substitute(myTxt.Name, "TextBox", "")
If 1 <= txtNo And txtNo <= 10 Then
ws2.Cells(txtNo + y0, 3) = ""
If myTxt.Object.Value = Val(ws1.Cells(txtNo + y0, 2)) Then
ws2.Cells(txtNo + y0, 3) = ws1.Cells(txtNo + y0, 3)
'テキストボックス11~20の更新
For Each myTxt2 In ws1.OLEObjects
If TypeName(myTxt.Object) = "TextBox" Then
txtNo2 = Application.Substitute(myTxt2.Name, "TextBox", "")
If txtNo2 = txtNo + 10 Then
myTxt2.Object.Text = ws1.Cells(txtNo + y0, 3)
End If
End If
Next
End If
End If
End If
Next
End Sub
すっごーーーーーーーーーーーーーーーーい!!
度々すみません。感涙です!! ううう。みずしらずの私のような
やからに、お出かけ前にすみません。
しかし、このプログラムを理解するために、少し勉強します。
まだ、うまく飲み込めないところがありますので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 10:00
- Visual Basic(VBA) テーブルを配列に入れて、元のテーブルの行番号を取得したい 1 2022/08/16 20:15
- Excel(エクセル) エクセルで日付セルのTEXT表示 3 2023/03/29 14:00
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
5年くらいSEXしてなかったから...
-
セックスする度に胸が大きくな...
-
セックスについて。 彼が正常位...
-
週1ペースで会うカップルでデー...
-
ドM 私はとてもドMで、彼と付き...
-
恋人とセフレの違いはなんです...
-
彼女とのセックスに新鮮味を感...
-
性欲と、人を好きになるって別...
-
30代前半男性の性欲
-
初めて泊まりにきてくれる彼女...
-
彼女が噛んできます。 歯型がつ...
-
セックス前にAV
-
昨日久々に元セフレ(元々頻繁...
-
一番多くて週に何回セックスし...
-
Excel VBA : 文字列の属性も含...
-
セックスする時なぜ声出るの
-
仕事のお客さんから質問された...
-
アナルファックと普通のセック...
-
女性に質問です。 僕はセックス...
-
彼氏が私の性格も見た目も褒め...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
週1ペースで会うカップルでデー...
-
セックスについて。 彼が正常位...
-
セックスする度に胸が大きくな...
-
初めて泊まりにきてくれる彼女...
-
性欲と、人を好きになるって別...
-
恋人とセフレの違いはなんです...
-
彼女とのセックスに新鮮味を感...
-
彼女が噛んできます。 歯型がつ...
-
セックスの2回目が無理
-
男性の性欲
-
30代前半男性の性欲
-
彼氏が私の性格も見た目も褒め...
-
昨日久々に元セフレ(元々頻繁...
-
彼氏の性欲とセックス
-
セックス前にAV
-
おじさんになってから若い女性に
-
胸が揺れるくらい激しいセック...
-
マッチングアプリで知り合った...
-
彼氏とお泊まり旅行
-
彼女とのセックスの頻度につい...
おすすめ情報