
お世話になります。
その昔、LOTUS123でデータベースを作成して遊んでいまして(もちろん私は初心者ですので雛型を拝借して改良を重ねて今も使用しているのですが)、最近またいじくりだして壁にぶつかってしまいましたのでこちらで質問させていただきます。
問題は、ユーザーフォームにtextboxがいくつかあってそのうちのtext1に文字列を入力してtext5にフォーカスされたときにsheetAから該当する数値を検索してtext5に自動入力されるようにするにはどうしたらよいでしょうか?
基となるsheetAには・・・
A B C D E
1 県 県庁所在地 地域 面積 人口
2 北海道 札幌 北海道 100 20
3 東京 東京 関東 50 100
4 新潟 新潟 北陸 50 20
5 愛知 名古屋 中部 40 60
・
・
・
範囲はA2:E50
となっているものとします。
自分で試行錯誤しながら考えたスクリプトがあるのですがエラーはなく無反応でした。
-----------------------------------------------------------
Sub Gotfocus(Source As Lotustextbox)
If Typename(cntrolObj) = "LOTUSTEXTBOX" Then
Dim 範囲 As Range
Set 範囲 = CurrentDocument.Ranges("sheetA:A2..sheetA:E50")
列番号 = 2
検索値 = text1.text
text5.text = Application.WorksheetFunction.VLookup(検索値, 範囲, 列番号, False)
End If
End Sub
------------------------------------------------------
私はシステム開発者でもなんでもなくただの文系のサラリーマンですので笑わないでください。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こちらはごめんなさい,いま手元に123のリファレンスを持ってないので,発言は憶測です。
>検索値 = text1.text
>VARIANT はオブジェクトを含んでいません。
エラーは今「text1」だと思っているテキストボックスが,実際にはtext1という名前のモノでは無い(名前が間違っている)と主張しているように思われます。
念のため,試験的に何か単純なスクリプトで
text1.text = "abc"
とか
text5.text = text1.text
などのようにして,今目の前にある各テキストボックスを正しく操作出来ているか,再確認してみてはいかがでしょう。
>もしやと思いつけてみました
同様にこちらも
>If Typename(cntrolObj) = "LOTUSTEXTBOX" Then
で検査している「cntrolObj」が,意図したテキストボックスを取得していない状況だと考えています。
また仮にここを正しい記述に直せたとしても,このIF判定はプログラムの中で論理的な意味合い(位置づけ)を有していないと考えています。
ご指摘の通りIf Typename~を省き、スクリプトを
-------------------------------
Sub Gotfocus(Source As Lotustextbox)
inputdialog.text5.text =inputdialog. Text1.text
End Sub
-------------------------------
と書きなおしたところ、
text5にはtext1の文字列が入力されたのでテキストボックスは正常に
動作しているように思われます。
No.1
- 回答日時:
>エラーはなく無反応でした。
この反応から推論すると,もしかすると
If Typename(cntrolObj) = "LOTUSTEXTBOX" Then
と
End If
の2行を,丸ごと消してしまうのでは如何でしょうか。
回答いただきありがとうございます。
私も最初はその2行はつけてませんでした。
で、実行した時エラーが出てしまいました。
------------
VARIANT はオブジェクトを含んでいません。
-----------
ちょうど検索値 = text1.text
のステートメントのところでつまずいています。
それで、If Typename~の構文が至るところで用いられているので、
もしやと思いつけてみました。
※表題のスクリプトですが、
列番号=5ですね。訂正します。
keithin様、わざわざこんな私に回答していただきありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CASL2 命令の2語と3語の違い
-
VB6.0 sp5]テキストボックスと...
-
アクセスのフィールドに値をペ...
-
C++言語、国際符号翻訳プログラ...
-
テキストボックスかラベル上の...
-
vba 日本語以外を抽出について
-
【VBS】クリップボード操作につ...
-
htmlの修正方法を教えていただ...
-
図の様な枠線の引き方を教えて...
-
sublimit textっていうエディタ...
-
ボールの動きがスムーズに動い...
-
LOTUS-123のユーザーフォームに...
-
VBScript、ClipboardDataオブジ...
-
他のフォームから別のフォーム...
-
ユーザーフォームへのデータ入...
-
VBA public変数はどのようなこ...
-
String型の値にスラッシュをつ...
-
演奏記号の・・・・
-
【HTML、VBScript】HTAアプリケ...
-
VBAでcallで呼び出したsubを終...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスかラベル上の...
-
ExcelのVBAで文章にある複数の...
-
vba 日本語以外を抽出について
-
Dreamweaverにて金額にカンマと...
-
XMLファイルのattribute値がう...
-
【VBS】クリップボード操作につ...
-
文字をアクティブにする方法
-
VBAの文字列で「"」を識別したい。
-
MATLABでのデータ処理に関して
-
円頓章を現代語訳して下さい。
-
C++言語、国際符号翻訳プログラ...
-
アクセスのフィールドに値をペ...
-
Googleシート「A1」でなくて「A...
-
助けてください!
-
図の様な枠線の引き方を教えて...
-
[VB2010]関数・代入が順序正し...
-
TextAreaのinsert
-
フォーム、サブフォーム間のデ...
-
TextBox内の特定文字の数を数え...
-
サクラのサーバーについて教え...
おすすめ情報