- ベストアンサー
エラー13 型が一致しません
- 氏名を入力するとフリガナが自動的に表示されますが、入力しないままフリガナに移動すると「エラー13 型が一致しません」というエラーが表示されます。
- 修正しやすいように、フリガナを出した後にカーソルをフリガナの最後に移動する処理を追加しましたが、何も入力せずにフリガナに移動するとエラーが発生します。
- 「エラー13 型が一致しません」というエラーを回避する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- DexMachina
- ベストアンサー率73% (1287/1744)
関連するQ&A
- Accessにコピペで郵便番号を入力した場合
ACCESSについてのご質問です。 郵便番号を入力時、IMEの郵便番号辞書により 都道府県市町村名を自動表示させるようにしています。 郵便番号を入力後、カーソルが町名の最後にフォーカスするように 下記のようにVBAで書いています。 -------------------- ivate Sub 郵便番号_AfterUpdate() With Me!住所詳細 '住所詳細にフォーカスを移動 .SetFocus 'カーソルを最後に移動 .SelStart = Len(.Value) End With End Sub -------------------- これで、郵便番号を通常に入力したときは問題ないのですが、 コピペで貼り付けた場合、どうしてもエラーになってしまいます。 ------ 実行時エラー'13': 型が一致しません。 ------ このエラーを回避する方法はありませんでしょうか。 ご存知の方、お教えいただければ幸いです。
- ベストアンサー
- その他(データベース)
- コンボボックス 選択後のカーソル制御
ACCESS2007のデータベースを利用しています。 テキストボックス1、コンボボックス1、テキストボックス2が上から順に並んでおり、コンボボックス1で表示されるリストから一つを選ぶと、カーソルがテキストボックス2に遷移します。 (ACCESS2007のオプションの詳細設定のところで、フィールド移動時の動作をフィールドの先頭に移動)に設定しています。 コンボボックス1の選択後、コンボボックス1の先頭にカーソル移動するには、どのような処理をVBAに追加すればよいでしょうか? Private Sub コンボボックス1_AfterUpdate() テキストボックス1.SetFocus コンボボックス1.SetFocus With Me!コンボボックス1 .SelStart = 0 .SelLength = 0 End With End Sub ではうまく動作しませんでした。どうぞ宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- AccessVBA SetFocusとGoToControlが正常に作動しない
重複番号をチェックする機能を作っています。 重複番号が入力されると、エラーメッセージが出て、 OKを押すと番号を入れるテキストボックスにカーソルが移動し、空白にする、 という機能をつけましたが、 何度試してもカーソルが、隣のテキストボックスに移動してしまいます。 (エラーメッセージが出て、空白にするという動作は正常に行われます) SetFocusとGoToControlで試したのですが、 どちらも駄目でした。 原因が分かりません。 どなたかお分かりになりましたら、教えてください。 コードは下記のとおりです。 Private Sub AMコード_AfterUpdate() If DCount("AMコード", "Q_AM担当者登録チェック") >= 1 Then MsgBox ("すでに存在する番号です。別の番号を振りなおしてください。"), vbCritical, "番号重複" AMコード.SetFocus AMコード = "" End If End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルマクロのイベントプロシージャについて
こにんちは。仕事で使う表をもっと便利にするため、独学でマクロを勉強、作成している者です。 さて、今回、ユーザーフォーム上に5つのテキストボックスを配置して(Textbox1~Textbox5)、Textbox1に入力した内容によってカーソルの移動先を変えるマクロを作成したいのですが、うまくいきません。 私の作成したコードは以下の通りです(今回、質問するにあたって、かなり省略しています)。 Private Sub TextBox1_AfterUpdate() Select Case TextBox1.Value Case 1 TextBox1.SetFocus Case 2 TextBox2.SetFocus Case 3 TextBox3.SetFocus Case 4 TextBox4.SetFocus Case Is >= 5 TextBox5.SetFocus End Select End Sub そこで、いろいろ試したり調べたりしたのですが、どうもイベントプロシージャそのものに対する基本的な認識ができていない気がしてきました。 と言いますのも、上記プログラムを走らせると、1、2を入力した際はタブオーダーに従い?Textbox2へカーソルが移動しますが、3以上の数値を入力すると、4でも5でもTextbox3へ移動します。 何をやってもタブオーダー通りにしか移動しないのならともかく、なぜこのような変な動きになるのか、分かりやすく説明していただくことは可能でしょうか。 また、もちろんどうすれば目的通り動かせるのかも教えていただきたく思います。 もちろん一番の目的はそれなのですが、今後の理解のため、イベントのタイミング等について教えていただければ幸いです。 なお、各イベントの意味については、下記のページを見て理解はできたつもりなのですが・・・。 http://home.att.ne.jp/zeta/gen/excel/c04p30.htm
- ベストアンサー
- オフィス系ソフト
- EXCEL VBAのユーザーフォームのコマンドボタンでBSキーと同様の役割を持たせる方法について
すいません、EXCEL VBAで教えていただきたいことがあります。 EXCEL VBAでユーザーフォームを作る。 フォーム内にはTextBox1とCommandButton1を設置。 TextBox1に書き込んだ文字をドラッグ →CommandButton1を押す →ドラッグした文字を消去 という機能をコマンドボタンに持たせたいのですが 可能でしょうか。 下記のコードを作ってみたのですが、やはりこれだと一文字づつしか消せません。 よろしくお願いします。 Private Sub CommandButton1_Click() Dim i As Integer With Me.TextBox1 i = .SelStart If i > 0 Then .Text = Left(.Text, i - 1) & Mid(.Text, i + 1) .SelStart = i - 1 End If End With TextBox1.SetFocus End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルユーザーフォームのカーソル位置
どうしても分からないのでお助け下さい(>_<) エクセルでユーザーフォームを作っています。 TextBox1に品番を入れたら、Label1に品名を表示させています。 このとき、TextBox1に存在しない品番を入力した場合は、 再度入れなおしをさせたいのです。 そこで、カーソルをもう一度TextBox1に持っていきたいのです。 しかし、どうやってもタブオーダーでTextBox1の次にあるTextBox2に カーソルが行ってしまいます。 どうしたらもう一度TextBox1にカーソルを持っていくことができますか? ちなみに品名を表示するモジュールを書いておきます。 このSetFocusが違うということは分かるのですが・・・。 Private Sub TextBox1_AfterUpdate() Dim tmp As Range, a a = Me.TextBox1.Value Set tmp = Sheets(1).Columns(1).Find(a, , xlWhole) If tmp Is Nothing Then Me.Label1.Caption = "品番が誤っています。再度入力して下さい" Me.TextBox1.SetFocus Exit Sub Else Me.Label1 = tmp.Offset(0, 1) End If End Sub
- ベストアンサー
- オフィス系ソフト
- タブキー 自身のコントロールにフォーカスをあてたい
タブキーで移動しても自身のコントロールにフォーカスをあてたい txt_検索文字と言うコントロールがあり、 txt_検索文字に文字を入力して、タブキーで移動すると、 Private Sub txt_検索文字_AfterUpdate() ’更新処理・・・ Me.Controls("txt_検索文字").SetFocus End Sub のイベントが発生するのですが、 タブキーを押してイベントが終わっても、再度、txt_検索文字のままにしたいのですが、 Me.Controls("txt_検索文字").SetFocus がきいてないようです。 他のコントロールにフォーカスが当たってしまいます。 ようは、タブキーを押してコントロールの更新イベントが発生しても、再度同じコントロールのままカーソルを充てる方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- VBAでのユーザーフォーム上でのタブオーダーの移動の方法
やりたい事を以下に書きます。 ユーザーフォームで入力用のTEXTBOXがいくつかあり、TABINDEXが最初のTEXTBOXから順に入力していきます。 1つのTEXTBOXに入力完了後した場合、TABキーまたは、ENTERにより次のTEXTBOXにフォーカスが移動し、最後にコマンドボタンにを押すと入力が完了するというフォームを作っています。 ただし、最初のTEXTBOXに『99』を入力すると、途中のTEXTBOXへのフォーカスの移動はしないで最後のコマンドボタンにフォーカスが移動するようにしたいと考えています。 問題点を以下に書きます。 TEXTBOXの入力完了を現在、「AfterUpdate」イベントでつかまえて、TEXTBOXの値を取得し、その値が『99』だった場合、コマンドボタンにフォーカスを移動するようにコーディングしています。 こんな感じです。(かなり省略していますが、) Private Sub TextBox1_AfterUpdate() If TextBox1.Value = "99" Then CommandButton1.SetFocus Exit Sub End If End Sub この用にコーディングすると、TABINDEXが二つ後ろのTEXTBOXが入力待ち状態となってしまいます。 たとえば TEXTBOXが3つコマンドボタンが1つのフォームだと、 TEXTBOX1に『99』と入力し、上記のコーディングだと一度コマンドボタンにフォーカスが移動したあと、最後にTEXTBOX3にフォーカスが移動して入力待ち状態となる感じです。 色々試しましたが、解決方法が見つかりません。知っている方いましたら、教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- ユーザーフォームのカーソル移動
Excelのマクロでカーソル移動の事で教えて下さい。 フォームを表示するとTextBox1にカーソルが表示されます。 TextBox1で入力の判断しNG場合 カーソルを移動せずTextBox1に表示したいのですが CommandButton1に移動してしまいます。 (SetFocusでTextBox1を指定してNG) 【フォームの内容です】 TextBox1が1個 CommandButtonが2個存在します。 TextBox1のTabIndexは 0 CommandButton1のTabIndexは 1 CommandButton2のTabIndexは 2 【プログラムです】 Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox1 = "" Then MsgBox "NG" TextBox1.SetFocus End If End Sub 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- ACCESSで重複チェック後にフォーカスを移動したい
Private Sub 会社名_AfterUpdate() ACCESS2003です。 フォーム上で入力後(更新後処理)に重複チェックをしています。 重複したときにエラーメッセージを出してフォーカスさせたいのです。 エラーメッセージまでは上手くいくのですが、フォーカスが移動してくれません。 どこが悪いのでしょうか? Private Sub 会社名_AfterUpdate() Dim i As Integer i = DCount("*", "tbl取引先", "会社名 ='" & Me.会社名 & "'") If i = 1 Then MsgBox [会社名] & " は登録済みです。" Me![会社名].SetFocus Cancel = True End If End Sub よろしくお願いします
- ベストアンサー
- オフィス系ソフト
お礼
分かりやすいご説明本当に感謝いたします! 無知なりにもできるとワクワクしますねw ほんとにありがとうございます!