- ベストアンサー
ExcelVBAでテキストボックスの操作
毎度お世話になっております。 TextBoxで、プロパティのEnabled を False、つまり編集不能に した場合ですが、既存ではテキストの色が灰色になりますが、 これをFalseのときでも黒のままにする方法はありますでしょうか。 初歩的な質問で申し訳ありませんが、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- コンボボックスの変更に応じてテキストボックスの有効を切り替える(ExcelVBA2007)
お世話になります。 Excel VBA 2007で質問です。 今、 Label1 ComboBox1 TextBox1 Label2 ComboBox2 TextBox2 ・・・ Label100 ComboBox100 TextBox100 のようなフォームがあるとします。 ComboBox1~100は「Any」「is」「is not」のいずれかの値が取れ、初期値はAnyとします。 TextBox の Enabled プロパティの初期値は False とします。 やりたいことは、 ComboBox が「Any」でない場合(is または is not のいずれかの場合)にのみその右隣の TextBox の Enabled プロパティを True にしたいのです。 いま、ComboBox30 を Any から is に切り替えたとします。 すると、TextBox30.Enabled を False から True にしたいのです。 ここで、ComboBox30 を is から is not に切り替えたとします。 TextBox30.Enabled は True のままです。 ここで、ComboBox30 を is not から Any に切り替えたとします。 すると、TextBox30.Enabled を True から False にしたいのです。 ComboBox のイベントハンドラで Sub ComboBox30_Change () If ComboBox30.Value = "Any" Then TextBox30.Enabled = "False" Else TextBox30.Enabled = "True" End If End Sub のように書けばいいことは分かっているのですが、その場合は数字だけ変えたイベントハンドラを100個書かなければなりません。 このイベントハンドラを1個にすることはできるでしょうか。 (コンボボックス100個のうちどれかが変更されたら、変更されたコンボボックスの番号を知りながら呼び出されるハンドラ) 次善の策として、 Sub ComboBox30_Change () userSubroutine End Sub のように書くこともできるかと思いますが、この場合、どのコンボボックスが変更されたか(どのイベントハンドラが起動されたか)を知って、userSubroutine に渡さなければなりません。 よろしくお願いします!
- ベストアンサー
- Visual Basic
- チェックボックスの色について
悩んでいます。 チェックボックスの□のところだけを灰色(Enabled=Flaseにした色)にしたいのですが、 プロパティは全体の色を変えるものしかないですよね? EnabledをFalseにしてしまうと、文字まで灰色になってしまうので、どうにか文字を黒のままにしたいです。 何か良い方法はありませんか?
- 締切済み
- Visual Basic
- 【Excel VBA】ユーザーフォーム テキストボックスの有効・無効について
Excel2003を使用しています。 ユーザーフォームにテキストボックスを11個とコマンドボタンを2個配置しています。 TextBox9に“0000”(文字列です)が入力されたら、TextBox10を有効に、それ以外は無効に設定したく、TextBox10のEnabledプロパティをFalse、LockedプロパティをTrueにして、コードを下記のように書いたのですが、うまくいきません。どこか、間違っているでしょうか? コードは該当部分だけ、載せています。よろしくお願いします。 -------------------------------------------------- If TextBox9.Text = "0000" Then TextBox10.Enabled = True TextBox10.Locked = False TextBox10.BackStyle = fmBackStyleOpaque Else TextBox10.Enabled = False TextBox10.Locked = True TextBox10.BackStyle = fmBackStyleTransparent End If
- ベストアンサー
- オフィス系ソフト
- EXCEL VBA ユーザーフォーム内のテキストボックスを一括処理する方法について
EXCEL VBAのユーザーフォームについて質問があります。 ユーザーフォームを作り、その中にコンボボックスを1個、テキストボックスを100個設置する。 コンボボックスの値が1のときはテキストボックス1~テキストボックス50までのEnabledをFalseに設定し、 コンボボックスの値が2のときはテキストボックス1~テキストボックス100までのEnabled をFalseに設定する。 このとき、TextBox1.Enabled = False、TextBox2.Enabled = False・・・と一つ一つ書いていくのではなく、 セルを処理するときと同様に、テキストボックスの番号を変数にして処理することは可能でしょうか。 Private Sub ComboBox1_Change() Dim i As Integer If ComboBox1.Value = 1 Then For i = 1 To 50 TextBox(i).Enabled = False Next i ElseIf ComboBox1.Value = 2 Then For i = 1 To 100 TextBox(i).Enabled = False Next i End If End Sub というような処理をイメージしているのですが、うまくいきません。どうぞよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- VB2010テキストボックスのボップアップについて
visual basic 2010を使用しています。 ■質問内容 ・EnabledをFalseにしてもクリックでボップアップ表示させる方法 ・他の方法で書き込み禁止にし、クリックでボップアップ表示させる方法 テキストボックスをクリックすると、ボップアップで内容が表示されるプログラミングをしたのですが、テキストボックスへの書き込みを禁止するためにプロパティからEnabledをFalseにすると、ボップアップされなくなってしまいます。 'テキストボックスには、コンボボックスから複数取得された内容が入っていますので、変数に入れました Private Sub textbox_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles textbox.Click Dim a As String a = textbox.Text MsgBox(a) End Sub 以上、宜しくお願い致します。
- ベストアンサー
- Visual Basic
- Excel VBA テキストボックスの入力を使用不可にした場合
Excel VBA テキストボックスの入力のプロパティのEnabledをFalseにする使用不可になるのですが、グレーで薄くなってしまい見にくいのですが、何か良い方法はないでしょうか? 黒文字にしたいのですが・・・。 よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- editableプロパティを変更しても反映されません。(Flex 3.
editableプロパティを変更しても反映されません。(Flex 3.0) テキストボックスが編集不可になるプログラムをボタンに配置しましたが、ボタンを押しても反映されません。editableプロパティをenabledプロパティに変えて試してみると、こちらは反映されるため、その他コードに間違いはなさそうな気がします。 ボタン操作でテキストボックスのeditableプロパティのture、falseを切り替えて反映させることは無理なのでしょうか。 function noedit():void{ textbox.editable=false; }
- 締切済み
- Flash
- ExcelVBA EnableプロパティがFalseの時に文字の色を変えたくない
ユーザーフォーム上のテキストボックスの内容を変えたくないときにEnableプロパティをFalseにすると、文字の色が灰色に変わってしまいますよね。 色を変えたくないので防ぐ方法はないでしょうか。 また、文字を変更させない方法で、ほかによい方法はないでしょうか。
- ベストアンサー
- Visual Basic
- フォーム上のテキストボックスの値を変更させない方法って?
アクセス2000を使っています。 フォーム上にテキストボックスを作成して、テーブル の値を表示しています。 VBAでこのテキストボックスの値が1の時は, me!txt.enabled=true(テキストボックスが開く) 0の時は、me!txt.enabled=false(テキストボックスがグレーアウト)というようにさせたいのです。さらにこのテキストボックスの値を変更できないようにしたいのですが方法はありますか? 要は、表示だけさせたいのです。 プロパティで値ロックするとenableが利かなくなります。 よろしくお願いいたします
- 締切済み
- オフィス系ソフト
- VB2008 textbox入力判断について
こんばんは、いつもお世話になりました。 VB2008で "ストップワォッチ"と"タイムダウン"のプログラムを作っています。 要望: 1 TextBox1.textが入力しない時、ストップワォッチを実行 (OK) 2 TextBox1.textが入力する時、TextBox1.textの値からタイムダウンを実行 (OK) 3 TextBox1.textの値をクリアされた時、再度ストップワォッチを実行 4 TextBox1.textに文字列入力された時、数字に変更してから タイムダウンを実行 (例:全角12:56 →12:56) 5 TextBox1.textが入力エラーの場合は プログラムを抜け、何もしないこと 下記のソースでしたら、3と4,5はまだできていません。 宜しくお願いします。 ---------------------------------------------------- 'TextBox1.textが入力しない時、ストップワォッチを実行 If TextBox1.Modified = False Then Timer1.Enabled = True datStart = Now() Me.Button1.Enabled = False Me.Button3.Enabled = False End If 'TextBox1.textが入力する時、TextBox1.textの値からタイムダウンを実行 If TextBox1.Modified = True Then dTime = TextBox1.Text Timer2.Interval = 1000 Timer2.Enabled = True End If 'TextBox1.textの値を再度クリアされた時、ストップワォッチを実行 If Len(TextBox1.Text) = 0 Then TextBox1.Modified = False End If -------------------------------------------------------------- 以上
- 締切済み
- Visual Basic
- つい数週間前までは普通に問題なく印刷できていたが、久々に使おうと思ったら、「印刷⇒データ受信中」のまま印刷されない。コピーとスキャンはできるが、家族のPC(win10)でも同じ現象。解決策を求めています。
- ブラザー製品「MFCCOW9340CDW」を2016/2/12に購入。PCのOSはWin7で、接続方法は有線LANです。エクセルなどの関連ソフトもあります。しかし、最近久々にプリントしようとした際、「印刷⇒データ受信中」のまま印刷ができず困っています。同じ症状が家族のPC(Win10)でも発生しました。コピーとスキャンは正常に動作します。
- PCからブラザー製品「MFCCOW9340CDW」への印刷ができない状況です。数週間前までは問題なく印刷できていたが、最近使用しようとすると「印刷⇒データ受信中」のまま印刷ができません。コピー機能やスキャン機能は正常に動作していますが、家族のPC(Win10)でも同じ現象が発生しています。解決策を教えていただきたいです。
お礼
hana-hana3さん、いつもいつもすみません^^; 毎回助けてもらっている感じです。 今回もまさに、教えていただいた方法で解決できました。 今後も間の抜けた質問をしてしまうかもしれませんが、 その時は又よろしくお願いいたします。