• ベストアンサー

ExcelVBAでテキストボックスの操作

毎度お世話になっております。 TextBoxで、プロパティのEnabled を False、つまり編集不能に した場合ですが、既存ではテキストの色が灰色になりますが、 これをFalseのときでも黒のままにする方法はありますでしょうか。 初歩的な質問で申し訳ありませんが、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

.Enabled = True .Locked = True ではどうですか?

tatapata
質問者

お礼

hana-hana3さん、いつもいつもすみません^^; 毎回助けてもらっている感じです。 今回もまさに、教えていただいた方法で解決できました。 今後も間の抜けた質問をしてしまうかもしれませんが、 その時は又よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連する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 に渡さなければなりません。 よろしくお願いします!

  • チェックボックスの色について

    悩んでいます。 チェックボックスの□のところだけを灰色(Enabled=Flaseにした色)にしたいのですが、 プロパティは全体の色を変えるものしかないですよね? EnabledをFalseにしてしまうと、文字まで灰色になってしまうので、どうにか文字を黒のままにしたいです。 何か良い方法はありませんか?

  • 【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 以上、宜しくお願い致します。

  • Excel VBA テキストボックスの入力を使用不可にした場合

    Excel VBA テキストボックスの入力のプロパティのEnabledをFalseにする使用不可になるのですが、グレーで薄くなってしまい見にくいのですが、何か良い方法はないでしょうか? 黒文字にしたいのですが・・・。 よろしくお願い致します。

  • editableプロパティを変更しても反映されません。(Flex 3.

    editableプロパティを変更しても反映されません。(Flex 3.0) テキストボックスが編集不可になるプログラムをボタンに配置しましたが、ボタンを押しても反映されません。editableプロパティをenabledプロパティに変えて試してみると、こちらは反映されるため、その他コードに間違いはなさそうな気がします。 ボタン操作でテキストボックスのeditableプロパティのture、falseを切り替えて反映させることは無理なのでしょうか。 function noedit():void{ textbox.editable=false; }

  • ExcelVBA EnableプロパティがFalseの時に文字の色を変えたくない

    ユーザーフォーム上のテキストボックスの内容を変えたくないときにEnableプロパティをFalseにすると、文字の色が灰色に変わってしまいますよね。 色を変えたくないので防ぐ方法はないでしょうか。 また、文字を変更させない方法で、ほかによい方法はないでしょうか。

  • フォーム上のテキストボックスの値を変更させない方法って?

    アクセス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 -------------------------------------------------------------- 以上

PCからプリントアウトできない
このQ&Aのポイント
  • つい数週間前までは普通に問題なく印刷できていたが、久々に使おうと思ったら、「印刷⇒データ受信中」のまま印刷されない。コピーとスキャンはできるが、家族のPC(win10)でも同じ現象。解決策を求めています。
  • ブラザー製品「MFCCOW9340CDW」を2016/2/12に購入。PCのOSはWin7で、接続方法は有線LANです。エクセルなどの関連ソフトもあります。しかし、最近久々にプリントしようとした際、「印刷⇒データ受信中」のまま印刷ができず困っています。同じ症状が家族のPC(Win10)でも発生しました。コピーとスキャンは正常に動作します。
  • PCからブラザー製品「MFCCOW9340CDW」への印刷ができない状況です。数週間前までは問題なく印刷できていたが、最近使用しようとすると「印刷⇒データ受信中」のまま印刷ができません。コピー機能やスキャン機能は正常に動作していますが、家族のPC(Win10)でも同じ現象が発生しています。解決策を教えていただきたいです。
回答を見る