Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7495 / 13644 ツリー ←次へ | 前へ→

【38734】CommandButtonを非活性化/活性化する方法 mutu 06/6/9(金) 10:36 質問[未読]
【38745】Re:CommandButtonを非活性化/活性化する... sin 06/6/9(金) 11:32 発言[未読]
【38758】Re:CommandButtonを非活性化/活性化する... mutu 06/6/9(金) 15:43 質問[未読]
【38768】Re:CommandButtonを非活性化/活性化する... ハチ 06/6/9(金) 18:08 発言[未読]
【38771】Re:CommandButtonを非活性化/活性化する... sin 06/6/9(金) 18:21 発言[未読]
【38772】Re:CommandButtonを非活性化/活性化する... ハチ 06/6/9(金) 18:32 発言[未読]
【38845】Re:CommandButtonを非活性化/活性化する... mutu 06/6/12(月) 12:50 お礼[未読]
【38769】Re:CommandButtonを非活性化/活性化する... sin 06/6/9(金) 18:12 発言[未読]

【38734】CommandButtonを非活性化/活性化する方法
質問  mutu  - 06/6/9(金) 10:36 -

引用なし
パスワード
   おはようございます。

VBA初心者のmutuと申します。


先日、TextBoxとCommandButtonを作成してみました。

そこで、TextBoxに正しい数字が入力されたら、
CommandButtonを活性化させて、
ボタンを押せるようにしたいと思っているのですが、
やり方がわかりません。

ちなみに、TextBoxに正しい数字が入力される前は、
CommandButtonは非活性化にしておいて、
ボタンを押しても無視するようにしたいとも思っています。


本にもぜんぜん載っていない事で、
さっぱり先に進めなくなってしまいました。
皆さんのお力を拝借いたしたく思います。
よろしくお願いします。

【38745】Re:CommandButtonを非活性化/活性化する...
発言  sin  - 06/6/9(金) 11:32 -

引用なし
パスワード
   ▼mutu さん:
はじめまして

>おはようございます。
>
>VBA初心者のmutuと申します。
>
>
>先日、TextBoxとCommandButtonを作成してみました。
>
>そこで、TextBoxに正しい数字が入力されたら、
>CommandButtonを活性化させて、
>ボタンを押せるようにしたいと思っているのですが、
>やり方がわかりません。
>
>ちなみに、TextBoxに正しい数字が入力される前は、
>CommandButtonは非活性化にしておいて、
>ボタンを押しても無視するようにしたいとも思っています。
>
>
>本にもぜんぜん載っていない事で、
>さっぱり先に進めなくなってしまいました。
>皆さんのお力を拝借いたしたく思います。
>よろしくお願いします。


活性化がよく分からないので違うかもしれませんが、
ご参考までに。


Private Sub UserForm_Initialize()
    
    CommandButton1.Enabled = False

End Sub

Private Sub TextBox1_Change()

  If TextBox1.Text = "1234" Then
    CommandButton1.Enabled = True
  End If

End Sub

【38758】Re:CommandButtonを非活性化/活性化する...
質問  mutu  - 06/6/9(金) 15:43 -

引用なし
パスワード
   ご回答ありがとうございました。

これでやってみようと思ったのですが、
また新しい問題にぶつかってしまいました。

教えていただいた、下記のコードですが、

Private Sub UserForm_Initialize()
    
    CommandButton1.Enabled = False

End Sub

Private Sub TextBox1_Change()

  If TextBox1.Text = "1234" Then
    CommandButton1.Enabled = True
  End If

End Sub


このコードを参考に、
UserFormを使用しないで作るためには、

Private Sub UserForm_Initialize()



Private Sub Worksheet_Activate()

にするだけでよいのでしょうか?

また、TextBox内は西暦を入力したく、
半角数字4文字のみ受け付けるようにしたいと思っています。

そこで、TextBoxプロパティーの項目別設定において

IMEMode を 2-fmIMEModeoff
MaxLength を 4

に設定しました。
ただ、これだと半角数字1文字〜3文字までも入力受付してしまうと思うのですが、
どのようにすれば、半角数字1文字〜3文字を弾く事ができるのでしょうか?
ご回答、よろしくお願いします。


▼sin さん:
>▼mutu さん:
>はじめまして
>
>>おはようございます。
>>
>>VBA初心者のmutuと申します。
>>
>>
>>先日、TextBoxとCommandButtonを作成してみました。
>>
>>そこで、TextBoxに正しい数字が入力されたら、
>>CommandButtonを活性化させて、
>>ボタンを押せるようにしたいと思っているのですが、
>>やり方がわかりません。
>>
>>ちなみに、TextBoxに正しい数字が入力される前は、
>>CommandButtonは非活性化にしておいて、
>>ボタンを押しても無視するようにしたいとも思っています。
>>
>>
>>本にもぜんぜん載っていない事で、
>>さっぱり先に進めなくなってしまいました。
>>皆さんのお力を拝借いたしたく思います。
>>よろしくお願いします。
>
>
>活性化がよく分からないので違うかもしれませんが、
>ご参考までに。
>
>
>Private Sub UserForm_Initialize()
>    
>    CommandButton1.Enabled = False
>
>End Sub
>
>Private Sub TextBox1_Change()
>
>  If TextBox1.Text = "1234" Then
>    CommandButton1.Enabled = True
>  End If
>
>End Sub

【38768】Re:CommandButtonを非活性化/活性化する...
発言  ハチ  - 06/6/9(金) 18:08 -

引用なし
パスワード
   >このコードを参考に、
>UserFormを使用しないで作るためには、
>
>Private Sub UserForm_Initialize()
>を
>
>Private Sub Worksheet_Activate()
>
>にするだけでよいのでしょうか?

CommandButton1のプロパティで
Enabled False
と設定すれば、デフォルトがFalseになります。

>また、TextBox内は西暦を入力したく、
>半角数字4文字のみ受け付けるようにしたいと思っています。
>
>そこで、TextBoxプロパティーの項目別設定において
>
>IMEMode を 2-fmIMEModeoff

このIMEModeは、TextBox1の初期状態を設定するだけで
日本語入力できなくなるわけではありません。

>ただ、これだと半角数字1文字〜3文字までも入力受付してしまうと思うのですが、
>どのようにすれば、半角数字1文字〜3文字を弾く事ができるのでしょうか?

Private Sub TextBox1_Change()
 CommandButton1.Enabled = False
 If Len(TextBox1.Text) <> 4 Then Exit Sub


とすれば、良いと思います。
一度TrueになるとずっとTrueのままになりそうですね。

【38769】Re:CommandButtonを非活性化/活性化する...
発言  sin  - 06/6/9(金) 18:12 -

引用なし
パスワード
   ▼mutu さん:
>ご回答ありがとうございました。
>
>これでやってみようと思ったのですが、
>また新しい問題にぶつかってしまいました。
>
>教えていただいた、下記のコードですが、
>
>Private Sub UserForm_Initialize()
>    
>    CommandButton1.Enabled = False
>
>End Sub
>
>Private Sub TextBox1_Change()
>
>  If TextBox1.Text = "1234" Then
>    CommandButton1.Enabled = True
>  End If
>
>End Sub
>
>
>このコードを参考に、
>UserFormを使用しないで作るためには、
>
>Private Sub UserForm_Initialize()
>
>を
>
>Private Sub Worksheet_Activate()
>
>にするだけでよいのでしょうか?

ユーザーフォームと同様にシートがアクティブになる度にCommandButton1.Enabled を
Falseにしたいというのであればそれでいいと思います。
一度だけにしたいのであれば、
Private Sub Workbook_Open()

  Worksheets("Sheet1").CommandButton1.Enabled = False

End Sub
を使えばいいと思います。


>
>また、TextBox内は西暦を入力したく、
>半角数字4文字のみ受け付けるようにしたいと思っています。
>
>そこで、TextBoxプロパティーの項目別設定において
>
>IMEMode を 2-fmIMEModeoff
>MaxLength を 4
>
>に設定しました。
>ただ、これだと半角数字1文字〜3文字までも入力受付してしまうと思うのですが、
>どのようにすれば、半角数字1文字〜3文字を弾く事ができるのでしょうか?
>ご回答、よろしくお願いします。

弾きたいタイミングで
  If Len(TextBox1.Text) < 4 Then
    MsgBox "文字数が足りません"
  End If
のような処理ではダメですか?

【38771】Re:CommandButtonを非活性化/活性化する...
発言  sin  - 06/6/9(金) 18:21 -

引用なし
パスワード
   ▼ハチ さん:
すいません、確認したはずなのですがカブりました。

【38772】Re:CommandButtonを非活性化/活性化する...
発言  ハチ  - 06/6/9(金) 18:32 -

引用なし
パスワード
   ▼sin さん:
>▼ハチ さん:
>すいません、確認したはずなのですがカブりました。

いえいえ^^
こちらこそ、でしゃばりました・・

【38845】Re:CommandButtonを非活性化/活性化する...
お礼  mutu  - 06/6/12(月) 12:50 -

引用なし
パスワード
   sinさん、
ハチさん、

ありがとうございました。
なんとかできそうです。

7495 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free