Excel VBA 質問スレッド №2019 (解決済)
UserForm_initializeでEnabled = Falseチェックボックスの判定してグレーアウトさせたい
投稿者 : けろ 投稿日時 : 2024/10/07(Mon) 10:03:21 OS : Windows 10 EXCEL : Excel 2016
顧客名簿UserFormを作っています。
UserFormへ入力したデータはエクセルシートに転記されます。(ここは完成)
シートのactivecell行からUserFormを立ち上げると修正もせきます。(ここも完成)シートとUserFormで往復ができるところまではできました。
A列 B列 C列 D列以降項目続くが省略・・・・・・
使用不可 取引先名 フリガナ
1 × ABC商事㈱ エービーシーショウジ
2 ㈱あいうえお アイウエオ
3
4
5
6
以下つづく
・
・
・
という感じでできておりますが、A列の使用不可のところに何かしらのチェックマークデータ(今は×が出るようになっています)がついていたら、UserFormを立ち上げた初期状態でオブジェクト名「使用不可CB」を判定して、チェックが入っていたら、指定したTextBoxすべてEnabled = Falseにしたいです。オブジェクト名「使用不可CB」自体は、activecell行のA列を反映できております。
使用不可にチェックが入っていたら、もうその会社は使えません、使わないでください、といった意味になります。
UserFormを立ち上げたときにグレーアウトするのでわかりやすくなるのではと思い、そうしています。
当たり前ですが、
にすると、チェックボックスの有無問わずグレーアウトします。
ですので、
にしてみたら、まったくチェックを判定していないのか、グレーアウト(編集不可)にならないです。
記述がおかしいでしょうか。
顧客名簿UserFormを作っています。
UserFormへ入力したデータはエクセルシートに転記されます。(ここは完成)
シートのactivecell行からUserFormを立ち上げると修正もせきます。(ここも完成)シートとUserFormで往復ができるところまではできました。
A列 B列 C列 D列以降項目続くが省略・・・・・・
使用不可 取引先名 フリガナ
1 × ABC商事㈱ エービーシーショウジ
2 ㈱あいうえお アイウエオ
3
4
5
6
以下つづく
・
・
・
という感じでできておりますが、A列の使用不可のところに何かしらのチェックマークデータ(今は×が出るようになっています)がついていたら、UserFormを立ち上げた初期状態でオブジェクト名「使用不可CB」を判定して、チェックが入っていたら、指定したTextBoxすべてEnabled = Falseにしたいです。オブジェクト名「使用不可CB」自体は、activecell行のA列を反映できております。
使用不可にチェックが入っていたら、もうその会社は使えません、使わないでください、といった意味になります。
UserFormを立ち上げたときにグレーアウトするのでわかりやすくなるのではと思い、そうしています。
当たり前ですが、
Private Sub UserForm_Initialize() userForm1.取引先名.Enabled = False userForm1.フリガナ.Enabled = False End Sub
にすると、チェックボックスの有無問わずグレーアウトします。
ですので、
Private Sub UserForm_Initialize() If userForm.使用不可CB.Value = True Then userForm.取引先名.Enabled = False userForm.フリガナ.Enabled = False Else userForm.取引先名.Enabled = True userForm.フリガナ.Enabled = True End If End Sub
にしてみたら、まったくチェックを判定していないのか、グレーアウト(編集不可)にならないです。
記述がおかしいでしょうか。
スポンサーリンク
[返信 1] Re : UserForm_initializeでEnabled = Falseチェックボックスの判定してグレーアウトさせたい
投稿者 : さんこう 投稿日時 : 2024/10/07(Mon) 11:35:18
>A列の使用不可のところに何かしらのチェックマークデータ(今は×が出るようになっています)がついていたら、
>UserFormを立ち上げた初期状態でオブジェクト名「使用不可CB」を判定して
「UserFormを立ち上げた初期状態」では、「オブジェクト名「使用不可CB」」も初期状態でしょうから、判定しても無駄です。
シートからユーザーフォームへデータを読み込むところで処理するとよろしいかと思います。
>A列の使用不可のところに何かしらのチェックマークデータ(今は×が出るようになっています)がついていたら、
>UserFormを立ち上げた初期状態でオブジェクト名「使用不可CB」を判定して
「UserFormを立ち上げた初期状態」では、「オブジェクト名「使用不可CB」」も初期状態でしょうから、判定しても無駄です。
シートからユーザーフォームへデータを読み込むところで処理するとよろしいかと思います。
[返信 2] Re : UserForm_initializeでEnabled = Falseチェックボックスの判定してグレーアウトさせたい
投稿者 : けろ 投稿日時 : 2024/10/07(Mon) 16:15:45
さんこう様のアドバイス通りにしたら、解決いたしました!
ありがとうございました。
さんこう様のアドバイス通りにしたら、解決いたしました!
ありがとうございました。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-05 17:22:54 )