Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


52256 / 76732 ←次へ | 前へ→

【29317】Re:ユーザーフォームのコントロール
発言  ichinose  - 05/9/30(金) 13:28 -

引用なし
パスワード
   ▼年寄り さん、▼WASI さん、こんにちは。

例えば、Userform1にテキストボックスが

  TextBox1  TextBox2  TextBox3   TextBox4
  TextBox5  TextBox6  TextBox7   TextBox8
  TextBox9  TextBox10  TextBox11   TextBox12
  TextBox13  TextBox14  TextBox15   TextBox16
  TextBox17  TextBox18  TextBox19   TextBox20
  TextBox21  TextBox22  TextBox23   TextBox24


というように6行4列に配置されているとしましょう。
他にコントロールがあってもかまいません。
方法は、配列に入れてしまおうということなんですが・・・。

Userform1のモジュールに
'============================================================
Private tbltxt(1 To 6, 1 To 4) As MSForms.TextBox
'=============================================================
Private Sub UserForm_Initialize()
   For y0 = LBound(tbltxt(), 1) To UBound(tbltxt(), 1)
    For x0 = LBound(tbltxt(), 2) To UBound(tbltxt(), 2)
     Set tbltxt(y0, x0) = Controls("textbox" & UBound(tbltxt(), 2) * (y0 - 1) + x0)
     Next x0
    Next y0
End Sub


'というように予め配列に入れてしまうのです。
'こうしておけば、例えば Commandbutton1のクリックで

'===========================================================
Private Sub CommandButton1_Click()
  Dim t_row As Variant
  Dim t_col As Variant
  t_row = Application.InputBox("input row", , , , , , , 2)
  t_col = Application.InputBox("input column", , , , , , , 2)
  MsgBox tbltxt(t_row, t_col).Name
'↑細かいエラー処理してませんから、存在する行と列を指定してください
End Sub

とうように行番号と列番号によって、相当するテキストボックスが取得できます。

確認してください。

1 hits

【29291】ユーザーフォームのコントロール 年寄り 05/9/29(木) 20:47 質問
【29295】Re:ユーザーフォームのコントロール ichinose 05/9/29(木) 21:46 発言
【29313】Re:ユーザーフォームのコントロール 年寄り 05/9/30(金) 12:37 質問
【29315】Re:ユーザーフォームのコントロール WASI 05/9/30(金) 13:04 発言
【29316】Re:ユーザーフォームのコントロール 年寄り 05/9/30(金) 13:13 発言
【29317】Re:ユーザーフォームのコントロール ichinose 05/9/30(金) 13:28 発言
【29318】Re:ユーザーフォームのコントロール 年寄り 05/9/30(金) 13:50 お礼

52256 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free