• 締切済み

InputBox関数でキャンセルボタンを不活性化させたいです

Sub test() InputBox "テスト", "TEST" End Sub 上記のInputBox関数を実行したときに表示されるキャンセルボタンを 不活性化させることは可能でしょうか ご存じの方ご教授頂きますようお願い致します OKボタンは活性化されたままで構いません

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

効果としては Sub test01() p1: a = InputBox("a=") If a = "" Then GoTo p1 End Sub で良いのでは。 笑わば笑え~♪ 関数は人の作ったプログラムで、一般に、そういうものを、任意の部分を自分流に修正するのは(操作でも、VBA程度のプログラムでも)できない。(引数ででも設定してない限り。) VBAのレベルでは、自分でコントロールを作るよりないと思う。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 >不活性化とはボタンは表示されているけど、押せない状態のことです 不活性化というのは、Enabled =False のことだと思います。UserFormなど、いろいろ経験されたほうがよいと思います。また、InputBox メソッド側を使い、InputBox 関数は、あまり使用されません。 InputBox関数は、もっとも単純なコントロールです。VBAコードでは、InputBox 関数のキャンセルボタンをEnabled というような発想はありえないとは思います。 以下のように、DialogSheetで、InputBox と見分けがつかないほどに、そっくりに作ることは可能です。なおかつ、キャンセルボタンを、Enabled=False にすることは可能です。 DialogSheetを、ひとつ設けて、そこに、Label と EditBox を設ければよいです。なお、DialogSheetは、最後に非表示にします。 ただし、DialogSheet の設け方とか分からないようでしたら、手をつけないほうがよいと思います。それほどのものではありません。こういうのは、かなり、マニアックというのがふさわしいような気がします。ユーザー側には、マクロはロックしてあれは、これは、一体、どうやっているのだろう、と思わせるような内容です。DialogSheet は、通常は、非表示にしておくものですから、このオブジェクトは見つかりません。 '標準モジュール Sub TestDialogBox()  With DialogSheets(1)   .DialogFrame.Caption = "TEST"   .Labels(1).Caption = "テスト"   .EditBoxes(1).Text = ""   .Buttons(2).Enabled = False 'キャンセルボタン   .Show  While .EditBoxes(1).Text = ""   .Show  Wend  End With   MsgBox .EditBoxes(1).Text End Sub

  • Ce_faci
  • ベストアンサー率36% (46/127)
回答No.2

こんばんわ >不活性化させることは可能でしょうか 不活性化させるとは、何もしないといういみでしょうか? このような感じでしょうか。 Sub test() RES = InputBox("テスト", "TEST") IF RES= VBOK THEN ’ココになにかしらの作業 ELSEIF RES = "" THEN’空欄でOKを含みます EXIT SUB END IF End Sub

noname#244288
質問者

補足

早速の回答ありがとうございます 不活性化とはボタンは表示されているけど、押せない状態のことです

noname#31387
noname#31387
回答No.1

Do Loopで如何でしょう。 何か入力しないと閉じませんが。 あとは、UserFormで作成するとか。 Sub Test() Dim myIpb As String Do    myIpb = InputBox("テスト", "TEST") Loop While myIpb = "" MsgBox myIpb End Sub

noname#244288
質問者

お礼

ありがとうございます 教えて頂いたロジックをベースにするか、UserFoamで作成する などしてみます

関連するQ&A

専門家に質問してみよう