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

  • 質問

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

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


    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のマスク文字をなくしたら

    通ります? 

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

    補足 

      

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

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

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

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

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

    2015年11月12日 2:17

すべての返信

  • こんにちは。

    Excel2013(32bit)で試しましたが、特に問題なさそうでした。
    passwordcharには何を設定しましたか。私は「*」を設定しました。

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

    可能であればデバッグ実行にて内部値を調べてください。
    StrCompの第一引数TextBox1.Textの値は何になっていますか?

    #passwordcharの問題なのか、StrCompの問題なのか。

    2015年11月12日 2:35
    モデレータ
  • then のあとや

    else のあとに

    msgbox  textbox1.text

    と入れて確かめところ

    ①passwordchar を*にした場合

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

      と返しました。

    ②passwordchar がない場合

      正しく返しました

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

    2015年11月12日 4:05
  • 原因結果ご報告

    2013と2010(初回起動時インストール)が混在されている

    環境で、形式がODFなどの関連付けのされていないファイル

    をひらくと、2010の構成の進行状況のウィザードが立ちあがり

    途中で止めたかどうかわかりませんが、

    2010で「Excel 保存時にlexicon(XLLEX.DLL)が見つからないか、壊れているとエラーが発生する。」

    VBAを削除しますか?

    などのメッセージが出ました。

    おそらく、そこで、VBAが壊れたようです。同じ環境で2010が一回も立ちあがってないPCではVBAのコードが

    通りました。 ご迷惑をおかけしました。

    2015年11月17日 2:38