- ベストアンサー
ユーザーフォームのサイズ変更とテキストボックスの条件設定について
- エクセル2000でユーザーフォームの作成を行っている際に、15インチと17インチモニターの混在する環境での寸法調整やコンボボックスの条件設定についてアドバイスをお願いします。
- ユーザーフォームのサイズ変更については、モニターのサイズに合わせて自動で変化させる方法があるのかを知りたいです。
- また、コンボボックスで「その他」を選択した際に、入力可能なテキストボックスを作成し、それ以外を選択した場合は非表示にしたり入力不可にしたりしたいですが、具体的な手順について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
【 1 】について ユーザーフォームの画面表示サイズは モニターのインチ数というよりは、 画面の解像度によって決まるのでは ないでしょうか。 画面の解像度は以下のようにして取得可能です。 Private Declare Function GetSystemMetrics _ Lib "user32" (ByVal nIndex As Long) As Long Sub Kaizoudo() Dim X As Long, Y As Long Dim nGA As String X = GetSystemMetrics(0) '画面の幅を取得 Y = GetSystemMetrics(1) '画面の高さを取得 MsgBox "幅" & X & "×" & "高さ" & Y End Sub 上記で取得した画面の解像度に応じて、 ユーザーフォームの大きさを変化させれば、 よいかと思います。 その場合、配置しているコントロールの位置も フォームの大きさに合わせて変える必要があります。 【 2 】について >1. テキストボックスそのものを非表示にする。 テキストボックスのVisible プロパティをFalseに設定する。 Private Sub ComboBox1_Change() If Me.ComboBox1.Text = "その他" Then Me.TextBox1.Visible = False Else Me.TextBox1.Visible = True End If End Sub >2. テキストボックスのバックカラーを「白」から「グレー」に変化させ、 それまで入力可能だったものを入力不可にする。 BackColor プロパティをグレイに設定し、 Enabled プロパティをFalseに設定すれば良いかと思います。 Private Sub ComboBox1_Change() If Me.ComboBox1.Text = "その他" Then Me.TextBox1.Enabled = False Me.TextBox1.BackColor = vbGrayText Else Me.TextBox1.Enabled = True Me.TextBox1.BackColor = vbWindowBackground End If End Sub
お礼
回答有難うございました。 何となく、惜しいところまで行っていたのですが、なかなか上手く行かなくて困っていました。 これで、完成の目途が立ちました。 有難うございました。