|
▼てつじ さん:
こんにちは。
こんな方法もあります。
一行の数が(ここで言う43)変更になっても
なるべく変更が少ないようにしてみました。
例は、コッマンドボタンのクリックイベントでのコードです。
Private Sub CommandButton1_Click()
Const cnt = 43 '1行、または、1列のテキストボックス数
Const txtst = 5 'テキストボックスの開始インデックス
Const txted = 176 'テキストボックスの終了インデックス
Const strw = 4 'シートの移行開始行
Const stcol = 4 'シートの移行開始列
Dim col As Long
Dim rw As Long
Dim idx As Long
For idx = txtst To txted
col = (idx - txtst + 1) Mod cnt
rw = (idx - txtst + 1) \ cnt
If (idx - txtst + 1) Mod cnt Then
Controls("textbox" & idx).Value = Worksheets(1).Cells(strw + rw, stcol + col - 1).Value
Else
With Worksheets(1)
Controls("textbox" & idx).Value = Application.Sum(.Range(.Cells(strw + rw - 1, stcol), _
.Cells(strw + rw - 1, stcol + cnt - 2)))
End With
End If
Next idx
End Sub
試してみてください。
|
|