質問: "hiragana" end sub にしたら、型が一致しません。(error 13)になりました。 ヘルプを見ると「設定値」に「hiragana」と書いてあったからそうしたのですがダメでした。 しかし、「visual basic」の項目の4を設定したら問題なく設定できました。 マイクロソフトのヘルプの見方がよくわからないのですが vbaで値を設定する時は、設定値ではなくvisual basicの値を設定するべきなのでしょうか?
回答: アクセスということなのでvbaだと思います。バージョンが分からないので、もしかしたら違うところがあるかも知れません。 >forms("fログイン").txt_サイト名.imemode = "hiragana" の「txt_サイト名」というのはtextboxでいいでしょうか。 まず、「型が一致しません。(error 13)」になってしまうのは、textbox.imemodeには数値を設定しなければいけないのに、文字列("hiragana")を設定しようとしているためです。 コードで(vbaで)設定するときは、ヘルプにある「visual basic」の列を設定します。 「設定値」の列は、たぶん、デザインビューのプロパティシートで設定するときのものだと思います。 なので、 forms("fログイン").txt_サイト名.imemode = 4 ということになるのですが、「4」では覚えにくいし、後で何だか分からなくなってしまいやすいので、こういうときは、定義済みの定数(列挙)を使うといいと思います。 列挙を使うとこの場合は、 forms("fログイン").txt_サイト名.imemode = acimemodehiragana あるいは forms("fログイン").txt_サイト名.imemode = acimemode.acimemodehiragana になります。 (acimemode.acimemodehiraganaは値が4として定義されています。) 最初から使えるオブジェクト(自分で作成したものでなくaccess等で定義済みのオブジェクト)のプロパティには、それ用の列挙が用意されていることがよくあります。 ただ、ヘルプでは、textbox.imemodeのページを見ても、どの列挙が使えるのかが分からないですね。 どこかに分かりやすくまとめたサイトがあるかも知れませんが、アクセスのヘルプからは「列挙」や「enumerations」「定数」(バージョンによって名称が違うかもしれない)のページから、それらしい名前のもの(この場合はimeが付いているなど)を探さないといけないみたいです。 それよりも、オブジェクトブラウザで調べた方が早いと思います。 コードを入力する画面でf2キーを押すとオブジェクトブラウザが表示されると思いますが、そのなかで、クラス(textbox)、メンバ(imemode)とたどっていくと、imemodeに設定できる列挙が表示されます。 access2013のドキュメント http://msdn.microsoft.com/ja-jp/library/office/ff837038.aspx http://msdn.microsoft.com/ja-jp/library/office/ff835083.aspx