• ベストアンサー

エクセル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

  • EXCEL VBAのInputBox

    VBA初心者のため、質問がうまくできないかもしれませんが よろしくお願いします。 ユーザーから文字列を入力してもらうためInputBoxを使用しました。キーボードのDを押したら、Input Boxを表示させるようにしたのですが、入力エリアにDが表示されてしまいます。また、プログラムを実行後から押されたキーの文字もすべて入力エリア表示されてしまいます。入力エリアを空白の状態で表示させたいのです。方法を教えてください。

  • ExcelのInputBoxに入力

    ExcelのVBAなどでInputBoxで入力待ちの状態に対して、例えばVBSなどの別のプログラムから 、その入力待ちの欄に値を入力することができますか? できるのであれば、どのようなコードになるのでしょうか? VBSやPowerShellなど、無料のものでお願いします。

  • エクセル(VBA)上でINPUTBOX以外の入力方法ないでしょうか?

    子供向けに暗算ドリルを作成しようと考えています。 VBAで、Range("A1")=InputBox("答えは?")と記述すれば、シート上にINPUTBOXが現れて、セルA1に答えを入力できますね。画面上にINPUTBOXを表示させるのは、違和感を感じてます。 「A1に問題を次々に表示させ」「A1に”答えは?”と表示させ」「A1に答えを入力させ」「A1に”正解です”表示」するような、スマートな入力方法はありますか?

  • VBAでInputBoxの再入力をさせるには?

    エクセルのVBAでInputBoxの間違えた入力をしてしまった時エラーが出てしまいます。 間違えた入力をした際、エラーではなく、再入力をさせるように促す処理をするにはどうしたらいいですか? 再入力システムにしたいのですが、できずに困っています。 わかる方がいましたら、教えていただけないでしょうか? よろしくお願いいたします。

  • InputBoxの入力値を半角数字のみと限定する方法

    Excel_VBAで、InputBoxにより半角数字の入力を求めています。入力値が半角数字でない判定をするのに、最も容易な方法はありませんか?"CInt"だと文字列ではダメですし、悩んでおります。 InputBoxに、半角数字のみと限定するようなオプションがあれば良いのですが・・・。

  • エクセル inputboxの入力を編集モードで

    エクセルのvbaでinputboxで入力させているのですが規定値のすぐあとに続けて入力したいのですが、一回クリックしないとセルの入力のような編集モードになりません。何百と続けて入力したいのでその度クリックしないですむよにinputboxの入力が 編集モードにすることができますでしょうか? 例えば 2019/10/ が規定値で / のすぐあとに数字をいれたいのですが 2019/10/の部分が反転されているので一回クリックしなければなりません。

  • エクセルVBA Inputboxについて教えてください。

    InputBoxの使い方について教えてください。 テストで下記のように書いてみました。 Sub input_test2() ans = InputBox("質問!適当に数字を入れてね") MsgBox Application.WorksheetFunction.IsNumber(ans), vbInformation, "入力判定" If Application.WorksheetFunction.IsNumber(ans) Then If ans = 0 Then MsgBox "入力されたのは、 0", vbInformation, "回答" If ans = 1 Then MsgBox "入力されたのは、 1", vbInformation, "回答" If ans = 2 Then MsgBox "入力されたのは、 2", vbInformation, "回答" If ans = 3 Then MsgBox "入力されたのは、 3", vbInformation, "回答" If ans >= 4 Then MsgBox "入力されたのは、 4以上", vbInformation, "回答" Else MsgBox "入力は数字でしてください!", vbExclamation, "お願い" End If End Sub 1.入力が数値ならTRUEがかえると思ったのですが、何を入れてもFALSEしかかえりません。どこがまずいのでしょうか? 2.表示されるInputBoxのサイズが随分横に長いのですが、サイズを変える方法はあるのでしょうか? 3.MsgBoxの"入力判定"や”回答”ようにInputBoxにも最上行に日本語を表示させる方法はないでしょうか? 以上、よろしくお願いいたします。

  • VBA inputbox関数について

    質問をさせてください。 VBA inputbox関数にて 数字を入力をし、その数字を元に挿入を行うというものを施しています。 そして下記の内容で実際は動くのですがどうしても疑問点が浮かんできます。 それはinputbox関数には宣言をしないと文字列として処理されますよね? なので、宣言をlongにして整数化をしています。 しかし、If "1" <= buf1 <= "65536" Thenの部分で 数字に""(ダブルコーテーション)を入れないとうまく作動しません。 例えば「0」を入力しても正の処理へ行います。 ダブルコーテーションで囲んでいる数値は文字列として認識されるはず・・ 入力は数値として宣言をしているのだからダブルコーテーションはいらないのではないんでしょうか? また、もし数字ではなく、記号などを入力をしてしまった場合の偽の処理へいくにはどうすれば いいでしょうか? 恐れ入りますがよろしくお願いいたします。 Sub test() Dim buf1 As Long buf1 = InputBox("コピー先の列番号を入力してください") If "1" <= buf1 <= "65536" Then Cells(buf1, 1).EntireRow.Insert Else MsgBox "正しい列番号を入力してください" Exit Sub End If End Sub

  • エクセルVBA、入力しないと閉じないInputBox

    必ず何かを入力しないと閉じないInputBoxを作ろうと思います。 以下のコードで入力がなければ閉じないというか、Line:に戻るので、何度でも現れるInputBoxになるようですが、このやり方は正しいですか? 通常はどうやるのでしょうか? Sub test() Dim a line: a = Application.InputBox("必ず入力して下さい。", "Input!") If Len(a) = 0 Or a = False Then GoTo line MsgBox "有難う。" & a & " ですね。", , "(o。_。)oペコッ" End Sub

  • Excel VBAで、Application.InputBoxのキャンセルと入力値ゼロを区別したい。

    VBA初心者です。 Application.InputBox(メソッド)で、キャンセルが選択されたら処理を終了し、数値が入力されたら計算をしたいのですが、ゼロを入力した場合にFalseと見なされて処理を終了してしまいます。ゼロを入力しても処理を続けるには、どのように記述すれば良いのでしょうか?よろしくお願いします。

専門家に質問してみよう