• ベストアンサー

エクセルVBA InputBoxで入力欄を*****

VBAのInputBoxでパスワードを入力させるようにしているのですが、入力欄に入れた文字は当然ながらそのまま表示されます。 これをいかにもパスワードの入力のように入力数字を****と表示させることはできないものでしょうか?

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

  • ベストアンサー
  • quit123
  • ベストアンサー率21% (4/19)
回答No.4

再びこんにちは。 以下のようにしてみてください ●パスワードを「abc123」とした場合 ---------------------------------------------- Private Sub CommandButton1_Click()   If TextBox1.Text = "abc123" Then     Unload Me   Else     TextBox1.Text = ""     TextBox1.SetFocus   End If End Sub ----------------------------------------- バスワードが違ったら再入力へ なお、Unload Me のところは Unload Userform1 Me.Hide Userform1.Hide 意味は違いますがどれでも可です。  

merlionXX
質問者

お礼

ありがとうございます。 ばっちりです♪

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

その他の回答 (4)

noname#112806
noname#112806
回答No.5

もうすでに他の方の方法で実現できていると思いますが、参考までにInputBox関数でのやり方を示しておきます。 といっても、海外の「Daniel Klann」という方の作成したコードになります。 URLを示してもよいかどうか分からないのでGoogle等で検索してみてください。 「Daniel Klann InputboxDK」で検索すれば見つかると思います。 自分もAccessで同じように悩みましたが、この方法で解決しました。

merlionXX
質問者

お礼

締め切ったあとからすばらしい回答をいただき、ありがとうございます。 検索してみましたらみんな英語のページなんですねえ、 とっても苦手なんですよ(笑) でもVBAは万国共通でしょうからなんとか勉強してみます。 ご親切、ありがとうございました。

すると、全ての回答が全文表示されます。
  • quit123
  • ベストアンサー率21% (4/19)
回答No.3

それはInputBoxでは出来ませんので 自分でパスワード入力ダイアログを作ってやります。 UserFormにTextBoxを貼り付け、 TextBoxのPasswordCharプロパティに「*」をセット すれば簡単に実現できます。 試してみて下さい。

merlionXX
質問者

補足

ありがとうございます。 試してみました。 Sub password() UserForm1.Show End Sub でユーザーフォームを出し、配置したTextBox1に「*****」を表示させ、 ユーザーフォーム上のコマンドボタンで Private Sub CommandButton1_Click() UserForm1.Hide End Sub で閉じるまではできました。 ただ、どうやってTextBox1の値を取得するのでしょうか?

すると、全ての回答が全文表示されます。
  • big_fool
  • ベストアンサー率22% (43/193)
回答No.2

プロパティーのPasswordCharに*を設定してみてはいかがでしょう

merlionXX
質問者

補足

InputBoxだったのですが、無理のようですね。 ありがとうございます。 ユーザーフォームのTextBox1の値をどうやって取得するのでしょうか?

すると、全ての回答が全文表示されます。
  • denbee
  • ベストアンサー率28% (192/671)
回答No.1

テキストボックスであればpasswordcharプロパティで そのような設定が可能なようです。

merlionXX
質問者

補足

テキストボックスではなくInputBox関数なんです。 不可能ですかね?

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

関連するQ&A