excel2013のVBAに見られるpasswordcharでの伏字マスク不具合について

Anonymous
2015-11-11T01:06:26+00:00

ユーザーフォームにテキストボックスとコマンドボタンを設定し

以下のコードを打ちました。

Private Sub CommandButton1_Click()

If StrComp(TextBox1.Text, "1234", vbBinaryCompare) = 0 Then

   Unload Pass  ’フォームのアンロード

Else

  MsgBox "パスワードが間違っています。"

  With TextBox1

    .Text = ""

    .SetFocus

  End With

End If

End Sub

textboxのプロパティにあるpasswordcharが設定してあります。

excel 2010 excel2007では、問題なく稼働しますが、

excel 2013でコードを走らせると、正しいパスワードを入力しても抜けられません。

ただし、passwordcharのマスク文字をなくしたら

通ります? 

なぜ? マイクロソフトに問い合わせたら、こちらでの質問を要望されました。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2015-11-12T00:01:37+00:00

hy531067 さん、こんにちは。

マイクロソフト コミュニティへの投稿ありがとうございます。

Excel 2007 や 2010 では動作していたコードが、Excel 2013 だと正常に動作しないのですね。

正しいパスワードを入力しても抜けられないというのは、「Unload Pass」の行が実行されないということでしょうか。それとも実行はされてもエラーなどが出るのでしょうか。

たとえば「MsgBox "正しいパスワードです"」などとしても処理されないか、確認してみてはいかがでしょう。

なお、VBA を使った開発については「MSDN の VBA フォーラム」の方がより情報が集まりやすいかと思いますので、よければそちらも利用してみてくださいね。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

6 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2015-11-12T10:41:57+00:00

    こんにちは。

    他のPCのExcel2013でも同じ症状なのでしょうか?

    それとも、貴方のPCのみですか?

    また、TextBox1.Value での動作はどうなのでしょうか?

    TextBox1.Value で動くのならば、Value への変更で対応してください。

    というか、TextBox1 (テキストデータを扱うコントロール)でも

    Value を使うのが普通です。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2015-11-12T04:04:58+00:00

    then のあとや

    else のあとに

    msgbox  textbox1.text

    と入れて確かめところ

    ①passwordchar を*にした場合

      メッセージボックスが ????

      と返しました。

    ②passwordchar がない場合

      正しく返しました

    ということで、なぜでしょう。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2015-11-12T02:36:33+00:00

    こんにちは。

    Debug.Print  TextBox1.Text

    を入れて、イミディエイトウィンドウで Text プロパティ の内容を

    確認してください。

    もしかしたら、Text プロパティに マスク後の表示内容が入っているのかも

    しれませんね。

    Text プロパティは「表示されている文字列」を表すプロパティなので、

    それこそが本来の動作だと言われれば、そうなんでしょうね。

    (Excel2013 が無いので私は確認できません)

    その場合、TextBox1.Value に変更してみてください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2015-11-12T02:12:51+00:00

    >>正しいパスワードを入力しても抜けられないというのは、「Unload Pass」の行が実行されないということでしょう か。それとも実行はされてもエラーなどが出るのでしょうか。

    回答 

         unload pass が実行されません、つまりtrueになりません。

         マスクされていると、正しい文字を入力しても常に

         「間違っています」のメッセージボックスがでます。

         excel 2007 2010では問題ありません。

         OSも、8.1  Vista  7 で違いはなく、officeのバージョン 15だとコードが通りません。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません