• ベストアンサー

「設定値」は設定できないのですか?

アクセスです。 Sub test() Forms("Fログイン").txt_サイト名.IMEMode = "Hiragana" End Sub にしたら、型が一致しません。(Error 13)になりました。 ヘルプを見ると「設定値」に「Hiragana」と書いてあったからそうしたのですがダメでした。 しかし、「Visual Basic」の項目の4を設定したら問題なく設定できました。 マイクロソフトのヘルプの見方がよくわからないのですが vbaで値を設定する時は、設定値ではなくVisual Basicの値を設定するべきなのでしょうか?

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

  • ベストアンサー
  • sech1152
  • ベストアンサー率72% (45/62)
回答No.1

アクセスということなので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

igbnkdedcymf
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

VBAではないですが テーブルの各フィールドのプロパティーでIME入力モード、IME変換モードで出来ます ナビゲーションウィンド内のテーブル名を右クリックして デザインモードに入ります。 尚、その他沢山のプロパティー項目が有りますがここで設定した内容は全て クエリー、フォーム、レポートに反映します また、太字、斜体、アンダーラインはフォームまたはレポートのプロパティー で設定します

igbnkdedcymf
質問者

お礼

ありがとうございます。

関連するQ&A

  • VBA UsedRangeで選択範囲を取得したい

    セルに aaa bbb ccc と入力し、vbaで Sub Macro() MsgBox ActiveSheet.UsedRange End Sub を実行すると、 型が一致しません。(Error 13) と言うエラーになります。 "$A$1:$D$3"と言うような値を取得したいのですが、どのようなVBAにすればいいのでしょうか? ご回答よろしくお願いします。

  • .Add Type:=xlValidateInpu

    VbaでA列のみ入力規則でひらがなにしたいのですが、 Sub test() With Columns(“a”).Validation .Delete .IMEMode = xlIMEModeHiragana End With End Sub にすると、実行時エラー1004になります。 .Delete .Add Type:=xlValidateInputOnly .IMEMode = xlIMEModeHiragana にすると、問題ないです。 .Add Type:=xlValidateInputOnly がどういう意味なのか知りたいのですが Validationのヘルプを見ても、 Add Typeに関する記載がありません。 なぜ、Add Typeがないとエラーになるのでしょうか?

  • 日付を数値型にしたいけどうまくできない

    Sub さんぷる1() Dim testlong As Long testlong = CLng(("2012/12/14")) End Sub をすると、 型が一致しません。になりますが、なぜでしょう? VBAです。

  • アクセスのラベルの背景色が設定できない

    アクセス2010なのですが Sub test() Dim FormName As String FormName = "F明細" Forms(FormName).Label_取引日.BackColor = RGB(255, 100, 255) End Sub を実行しても、背景色:色なし のままなのですが、どうやったら設定できるのでしょうか? ForeColorの設定はvbaで可能でした。よろしくお願いします。

  • 【プログラミング】ショートカットキーの設定について

    KeyPress イベントプロシージャの設定で Private Sub Button1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles Button1.KeyPress If e.KeyChar(Keys.F) Then End If End Sub この中にボタン1の命令をさせたいとき、どのように書けばいいんでしょうか? Visual Basic 2010です コードを教えてください、お願いします

  • 最小化最大化のボタンの表示をVBAで設定できない

    アクセス2003を使用しています。 VBAでフォームの最小化最大化のボタンの制御をしたいのですがエラーになってしまいます。 詳しい内容は Private Sub Form_Load() Me.MinMaxButtons = 0 End Sub とすると、  実行時エラー '2448':  このオブジェクトに値を代入することはできません。 となってしまいます。 そのままヘルプを開くと ********************************************************** フォームまたはデータ アクセス ページを読み取り専用にする フォームを読み取り専用にするには、フォームのプロパティを設定します。データ アクセス ページを読み取り専用にするには、グループ レベル プロパティを設定し、データ アクセス ページに含まれるグループごとに読み取り専用にします。 ********************************************************** となっています。 MinMaxButtonsのヘルプには ********************************************************** フォームの最大化ボタンと最小化ボタンを表示するかどうかを示します。 値の取得および設定が可能です。 ********************************************************** と書かれてるのでVBAで設定可能だと思いますがなぜかできません。 よろしくお願い致します。

  • InputBox  String型・Variant

    VBAです。 InputBox  String型・Variant型がエラーにならない理由がわかりません。 Sub 日付型() Dim 日 As Date 日 = InputBox("値をいれてください") End Sub Sub 数値型() Dim i As Long i = InputBox("値をいれてください") End Sub Sub 通貨型() Dim 円 As Currency 円 = InputBox("値をいれてください") End Sub Sub String型() Dim a As String a = InputBox("値をいれてください") End Sub Sub Variant型() Dim v As Variant v = InputBox("値をいれてください") End Sub String型・Variant型以外は、 「実行時エラー '13'; 型が一致しません。」になります。 String型・Variant型はならない理由を教えてください。ご回答よろしくお願いします。

  • AllowDesignChanges制御できない

    AllowDesignChangesがVBAで制御できない理由は? アクセスのフォームで、 Private Sub Form_Open(Cancel As Integer) Me.AllowDesignChanges = False 'デザイン変更の許可をしない End Sub を実行すると、 実行時エラー"2448" このオブジェクトに値を代入することができません。 になります。 でもAllowDesignChangesのヘルプを見ると、 「"AllowDesignChanges/デザイン変更の許可" プロパティは、 フォームのプロパティ シートまたは Visual Basic を使って設定できます。」 と書いてあります。 という事は、VBAで操作できるって事ですよね? それなのになぜエラーになるのでしょうか?

  • vbaで今年があと残り何日かを求めたいのですが

    vbaで今年があと残り何日かを求めたいのですが Sub test() Debug.Print Year(Date) & "/12/31" - Date End Sub これだと、型が一致しませんになります。 なぜエラーになるのでしょうか? その原因がわかれば解決できそうな気が・・・

  • VB2005 TextBoxの入力制限について

    はじめて質問させていただきます。 現在、VB2005を使ってプログラムを組んでいるのですが、半角カタカナだけをTextBoxに入力し、表示する方法がわかりません。 Private Sub TextBox6_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox6.KeyDown TextBox6.ImeMode = Windows.Forms.ImeMode.KatakanaHalf End Sub Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress If (e.KeyChar < "ア"c Or e.KeyChar > "-"c) And e.KeyChar <> vbBack Then e.Handled = True End If End Sub ↑見にくいかもしれませんがコードです。 この方法ではだめなのでしょうか? 回答をお願いします

専門家に質問してみよう