|
▼年寄り さん:
こんばんは。
>希望していたことはichinoseさんが感じ取っていただいたことと同じです。どうも年を
>取ると語彙は少なくなるし、独善的になるようで(私だけかな?)いけないですね。上
>手に表現できずにすみません。
私も結構な年なんですが、私の場合は、若い頃からボキャブラリ不足でした。
だから、このサイトの投稿もかなり必死なんです。
同じ内容を手を変え、品を変え・・・。
ちょうど、英語があまり話せない人が身振り手振りのボディランゲージで
何とか意思を伝えようとしているのと同じです。
さて、
>質問を変えます。
先にお断りしておきますが、コードでコントロールを配置したのは
あくまでも説明の都合上でこういうコードにがよいという意味ではありません。
VBEでの事前配置も考慮して下さいね!!
一長一短ありますからね!!
200行はちょっと多いかなあ?
まっ、やってみて下さい。駄目なら、スプレッドシートを使う事も考えましょう!!
とりあえず、
>コードで作成したコントロールのイベント(ClickやEnter)は何処にどのように記述しますか?
これについて・・・。
前回のマルチページにテキストボックスを配置した例を使用しますが・・。
その前にイベントを記述するモジュールを確保します。
クラスモジュールを使用します。
クラス名は 規定のClass1とします。
(VBEにて「挿入」---「クラスモジュール」で作成されます)
このクラスモジュールに
'============================================================
Public WithEvents txt As MSForms.TextBox
Public id As Long
'======================================================================
Private Sub txt_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Or KeyCode = 9 Then
If Not IsNumeric(txt.Text) Then
MsgBox "数字を指定して!!"
KeyCode = 0
End If
End If
End Sub
では、前回のUserform2のモジュールは、
'=============================================
Dim c_txt(1 To 20) As Class1
'=============================================
Private Sub UserForm_Initialize()
Dim p As Page
Dim sz As Double
Dim wk As String
Dim idx As Long
With Me
.Height = 300
.Width = 420
End With
With Controls.Add("Forms.MultiPage.1")
.Top = 75
.Left = 5
.Height = 200
.Width = (9.75 * 40 + 12) + 0.75
.Pages.Remove 1
With .Font
.Name = "MS ゴシック"
.Size = 10
sz = Int(.Size / 0.75) * 0.75
End With
Set p = .Pages(0)
p.Caption = String(Int((Int(.Width / 0.75) * 0.75 - 12.75) / sz), " ")
wk = p.Caption
Mid(wk, 1, 9) = "マルチページ使用例"
p.Caption = wk
p.ScrollBars = 2
p.ScrollHeight = 1000
For idx = 1 To 20
Set c_txt(idx) = New Class1
With c_txt(idx)
.id = idx
Set .txt = p.Controls.Add("Forms.TextBox.1")
With .txt
.Top = (idx - 1) * 50 + 20
.Left = 30
End With
End With
Next
End With
End Sub
と変更して下さい。
これで、標準モジュールに
sub main()
userform2.show
end sub
とし、実行してみて下さい。
提示したコードは、
テキストボックスに数字以外を指定してEnterキー又は、Tabキーを
押すとエラーメッセージを表示するコードです。
確認して下さい。
|
|