回答編集履歴

2

追記

2020/02/08 11:34

投稿

mattuwan
mattuwan

スコア2163

test CHANGED
@@ -103,3 +103,53 @@
103
103
 
104
104
 
105
105
  どの辺がこんがらがりますか?
106
+
107
+
108
+
109
+ ---
110
+
111
+ あぁ、60個分コード書くの大変だから、こんな感じにすると、
112
+
113
+ コードが短くなります。
114
+
115
+ ```ExcelVBA
116
+
117
+ Private Sub CommandButton1_Click()
118
+
119
+ Dim rngTable As Range '表の範囲
120
+
121
+ Dim rngFind As Range '検索する列
122
+
123
+ Dim rngTarget As Range '見つけたセル
124
+
125
+ Dim i As Long '順番
126
+
127
+
128
+
129
+ Set rngTable = ThisWorkbook.Worksheets(1).Range("B12").CurrentRegion
130
+
131
+ Set rngFind = rngTable.Columns(1)
132
+
133
+ Set rngTarget = rngFind.Find(Me.TextBox1.Text, LookAT:=xlWhole)
134
+
135
+
136
+
137
+ If Not rngTarget Is Nothing Then
138
+
139
+ With Intersect(rngTarget.EntireRow, rngTable)
140
+
141
+ For i = 1 To 60
142
+
143
+ Me.Controls("TextBox" & i).Text = .Cells(i).Text
144
+
145
+ Next
146
+
147
+ End With
148
+
149
+ End If
150
+
151
+ End Sub
152
+
153
+ ```
154
+
155
+ ※テキストボックスのオブジェクト名とセルの位置関係を合わせる必要があります。

1

追記

2020/02/08 11:34

投稿

mattuwan
mattuwan

スコア2163

test CHANGED
@@ -25,3 +25,81 @@
25
25
  > 問題や質問は実際に調査や作業に取り組み、具体的なところで生まれると考えるためです。
26
26
 
27
27
  > まずは実際に作業に取り組み、つまづいたところで投稿をしてみてください。
28
+
29
+
30
+
31
+ ---
32
+
33
+ っと失礼しました。
34
+
35
+ 「例で良いので」に反射的に拒否反応して、コード読んでなかったです。
36
+
37
+ すみませんでした。
38
+
39
+
40
+
41
+ Findメソッドなら、
42
+
43
+ ```ExcelVBA
44
+
45
+ Private Sub CommandButton1_Click()
46
+
47
+ Dim rngTarget As Range
48
+
49
+ Dim rngFind As Range
50
+
51
+
52
+
53
+ Set rngFind = ThisWorkbook.Worksheets(1).Range("B:B")
54
+
55
+ Set rngTarget = rngFind.Find(Me.TextBox1.Text, LookAT:=xlWhole)
56
+
57
+
58
+
59
+ If Not rngTarget Is Nothing Then
60
+
61
+ With rngTarget
62
+
63
+ Me.TextBox2.Text = .Cells(1, 2).Text
64
+
65
+ Me.TextBox3.Text = .Cells(1, 3).Text
66
+
67
+ End With
68
+
69
+ End If
70
+
71
+ End Sub
72
+
73
+ ```
74
+
75
+ こんな感じですかね。
76
+
77
+
78
+
79
+ ぼくなら、Match関数で検索するかなぁ。。。
80
+
81
+
82
+
83
+ っていうか60個テキストボックスを配置してるんですか?
84
+
85
+ ぼくならシートをユーザーフォームの代わりに使うかも。。。
86
+
87
+ ま、個人の好みなんで、一般的にはユーザーフォーム使うんでしょうけど。。。。
88
+
89
+
90
+
91
+ あ、
92
+
93
+ >Me.TextBox2.Text
94
+
95
+ me.textbox2.value
96
+
97
+ でもいいです。
98
+
99
+ テキストボックスにはテキストしか入らないから、
100
+
101
+ 結果は変わりません。文字を入れるから、Textと明示したまでです。
102
+
103
+
104
+
105
+ どの辺がこんがらがりますか?