• ベストアンサー

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

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

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

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

> コンパイルエラーがでます。 > Label1.Value = ラベルの文字列を指定するプロパティは「Value」ではなく「Caption」ですよ。

cocoku
質問者

補足

そうでした。(^^;; ご指摘ありがとうございます。

その他の回答 (5)

  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.6

別にコントロールを重ねて配置しなくても、ラベルのプロパティ[SpecialEffect]を2-fmSpacialEffectSunkenに設定すれば、見た目TextBoxで操作不可になりませんか? ラベルには、ClickイベントもMouseMoveイベントも設定できるはずですし。

cocoku
質問者

補足

はい、ありがとうございます。 ラベルですることにしました。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.5

ANo.4です。 解釈を間違ったかも・・・ > ユーザーフォームのプロパティのCaptionなしは、ブランクと言うことですか? ユーザフォームの上に、新たに「フレーム」(Frameコントロール)を配置してください。 で、フレームコントロールに対して、設定を行ってください。

cocoku
質問者

お礼

初心者の私にいろいろありがとうございました。 お返事遅くなりましたが、結局ラベルですることにしました。 ありがとうございました。

cocoku
質問者

補足

ありがとうございます。 新しいフォームを重ねるということですね。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.4

> ユーザーフォームのプロパティのCaptionなしは、ブランクと言うことですか? そうです。 > BorderStyleのを1にすることですか? 「BorderStyle プロパティ」と「SpecialEffect プロパティ」の両方を0にすると、枠が消えると思います。 (Excel2003で確認) #見た目の問題なので、枠が見えても良いなら、残していても構いません。

cocoku
質問者

補足

やってみました。テキストボックスはうまくいきましたが、 MOVEMOUSEとボタンがクリックできませんでした。ので無理みたいです。ありがとうございます。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.3

ANo.2です。 > EnabledをFalseにする使用不可になるのですが、グレーで薄くなってしまい見にくいのですが 裏技っぽい方法ですが・・・ テキストボックスを、『Captionなし、枠無しの指定をしたフレーム』の上に配置して、 フレームのEnabledをFalseにする。 と言う方法があります。

cocoku
質問者

補足

『Captionなし、枠無しの指定をしたフレーム』と言うのは、ユーザーフォームのプロパティのCaptionなしは、ブランクと言うことですか? BorderStyleのを1にすることですか?

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

文字を入れられたくないのなら、ラベルを使用するのはダメでしょうか?

cocoku
質問者

補足

ラベルでもかまいませんが、コンパイルエラーがでます。 Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Label1.Value = "リスクを見られる場合は、こちらのボタン押してください。" End Sub たぶん、MouseMoveにしているからと思いますがここははずしたくないので・・・。

関連するQ&A

  • テキストボックスの入力抑制

    使用言語はVB.NETです。 フォームAのテキストボックスAに文字を入力し確定すると、 フォームBが起動、フォームBのテキストボックスには、 テキストボックスAで入力した内容が表示されており、それを 変更することはできない。 ただし、テキストボックスAに何も入力せずに起動した場合、 テキストボックスBの内容は書き換え可能、というようなものを 作りたいと思っています。 また、テキストボックスBを入力不可にするには、Enabled=False 以外の方法で行いたいのです。 例えば、テキストボックスAで1と入れた場合、テキストボックスBの 初期表示1をBSで消しても、違う値をいれても、常に1に表示が戻される、 というようなものにしたいのですが…。 上記のようなものを作るには、どのように処理を作っていけば 良いのでしょうか? サンプル的なコードを教えていただけるとありがたいです。 よろしくお願いします。

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

    アクセス2000を使っています。 フォーム上にテキストボックスを作成して、テーブル の値を表示しています。 VBAでこのテキストボックスの値が1の時は, me!txt.enabled=true(テキストボックスが開く) 0の時は、me!txt.enabled=false(テキストボックスがグレーアウト)というようにさせたいのです。さらにこのテキストボックスの値を変更できないようにしたいのですが方法はありますか? 要は、表示だけさせたいのです。 プロパティで値ロックするとenableが利かなくなります。 よろしくお願いいたします

  • EXCEL VBA のテキストボックスで

    EXCEL VBAのテキストボックスでボックス内にテキストを入力 しなければカーソルの移動が出来ないようにできますか? 宜しくお願いします。

  • エクセル・VBAでテキストボックスに入力された文字を

    エクセル・VBAでテキストボックスに入力された文字を B列から検索し、結果をユーザーフォームのリストbox に表示したいのですがうまくいきません 検索は部分一致・大文字小文字無視で行いたいです よろしくお願いします

  • Excel VBAのフォーム_ラベルの縦位置

    Excel VBAのフォームを作成しているのですが、 ラベルのキャプションの縦位置が指定できません。 テキストボックスを入力不可の状態にすると、文字が薄いグレーになってしまい、 ラベルにすると表示される文字が上によってしまいます。 ラベルの文字列を下付き文字にするか、テキストボックスのもじれるを黒くする方法を教えてください。 よろしくお願い致します。

  • 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 というような処理をイメージしているのですが、うまくいきません。どうぞよろしくお願いいたします。

  • 【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

  • エクセルVBAのテキストボックス改行について

    質問させて頂きます。 今VBAを使っているのですが TextBox内の改行がうまくいきません。 フォーム上にテキストボックスを置いて5~6行表示できる大きさにして、 (テキストボックス内に書いたものを保存ボタンでエクセル内の指定部分に反映させるコードを書き) それをマクロから開いて文字を入力している時に エンター押せば改行できると思っていたのですが出来ません。 CtrlやAlt押しながらもダメでした。 テキストボックスのプロパティ内に行を指定できる何かがあるのでしょうか? 色々いじりすぎて元に戻せなくなりつつあったので 質問させて頂きました。 ご存じの方おられましたら是非教えて下さい。 よろしくお願いします。

  • EXCEL VBA テキストボックスを見やすくしたい

    いつもお世話になっております。 EXCEL VBA のユーザーフォーム上の テキストボックスについて教えて下さい。 大きめのテキストボックスを作り 改行を許可して、数十文字を表示させることができたのですが、行と行の間が詰まりすぎていて、見づらいのです。 行間を空ける方法を教えて下さい。

  • エクセル VBA チェックボックスについて

    よろしくお願い致します。 OS:XP エクセル2003 VBAのことは、まったくの初心者です。 質問なのですが、下記のようなチェックボックス7にチェックが入れば、チェックボックス8~11に自由にチェックが入れれるようになり、逆にチャックボックス7にチェックが入ってない場合は、チェックボックス8~11のチェックはクリアされ、チェックできないものを作りました。 ここから、チェックボックス7にチェック入れたあとは、必ずチェックボックス9~11のどれかにチェックが入っている状態(ラジオボタンのような)で、チェックボックス7にチェックが入ってなかったら、8~11のチェックがクリアで尚且つ、チェックができなくなるようにするにはどうすればよいでしょうか? よろしくお願い致します。 Private Sub CheckBox7_Click() If CheckBox7.Value = True Then CheckBox8.Enabled = True CheckBox9.Enabled = True CheckBox10.Enabled = True CheckBox11.Enabled = True Else CheckBox8.Value = False CheckBox9.Value = False CheckBox10.Value = False CheckBox11.Value = False CheckBox8.Enabled = False CheckBox9.Enabled = False CheckBox10.Enabled = False CheckBox11.Enabled = False End If End Sub

専門家に質問してみよう