- ベストアンサー
入力の簡略化
前回の質問させていただいたものですが、今だに完成できて いないので、もう一度書き込みさせていただきます。 kurodai2様にご丁寧に返答いただいたのですが、 いかんせん小さい脳みそで。。質問も閉じてしまいましたので今一度。 ツアーNo.、ツアータイトル、ツアー情報、入力者氏名 があります。 現在、フォームを開く際に小さなフォームが出てきて、 「入力者の氏名」を入力します。格納する不可視の テキストBOX「非入力者」があり、「入力者氏名」は そこを見に行き、新しいレコードを開くたびに自動で氏名が 反映されます。のはずです。説明難しいですが。。 フォームで「ツアーNo.」を入力し、更新したら、「ツアータイトル」 と「ツアー情報」が自動で出てきます。これは前もって ツアー情報テーブルで登録しています。 そこで、毎回同じ「ツアーNo.」、「ツアータイトル」、「ツアー情報」 の場合、入力の際ミスが出ますので、入力者氏名と同じ方法で 格納して反映しようと思っています。 まぁkurodai2様の教えなんですけど^^; メモリーに格納ってのは難しかったのでこちらの方法でいこうと 思います。 自分なりにいじってみたんですけど、 Dim Textname As TextBox Dim strmsg As String Dim varname As Variant Set Textname = Me.入力者表示 strmsg = "入力者氏名を入力して下さい" varname = InputBox(strmsg) '入力なき時は、フォームオープンをキャンセルします。 If varname = "" Then Cancel = True End If Textname = varname Set Textname = Me.ツアーNo strmsg = "ツアーNoを入力して下さい" varname = InputBox(strmsg) '入力なき時は、フォームオープンをキャンセルします。 If varname = "" Then Cancel = True End If Textname = varname では、ツアーNo.に値は入れれませんとエラーがでます。 非連結のテキストボックス「非ツアーNo.」を作り、それを指定したら 入りました。 非連結のテキストボックス「非ツアーNo.」にツアーNo.を入れ、 保存ボタン押したら「非ツアーNo.」から「ツアーNo.」へ値を 反映させるようにしたのですが、ボタンを押した時点では反映 されているのに、レコードが切り替わったらブランクに なってしまいます。たぶんそういう設定にしているのでしょうけど、 どこをいじっていいのか。。 しかもツアーNo.へ値を反映させても値のみが反映され、 「ツアータイトル」と「ツアー情報」が空白のままになって しまいます。 もうなにがなんだか。。 知識と文章力のなさで、暗号を解くみたいになりましたが、、、。 ご理解いただける方、宜しくお願いいたします。
- みんなの回答 (7)
- 専門家の回答
関連するQ&A
- ACCESSのフォーム
はじめまして。 個人データの管理でACCESSで名簿入力をしています。 入力のフォームを開く際に、 Private Sub Form_Open(Cancel As Integer) Dim Textname As TextBox Dim strmsg As String Dim varname As Variant Set Textname = Me.入力者表示 strmsg = "入力者氏名を入力して下さい" varname = InputBox(strmsg) '入力なき時は、フォームオープンをキャンセルします。 If varname = "" Then Cancel = True End If Textname = varname End Sub として、入力者の氏名を入力しています。 詳細は作成者でないので分かりかねますが、 フォームで非連結のテキストボックスを作成して、 なにかしら表示ができるようになっているみたいです。 これはフォームを開く際に出てきた小さい窓に一度だけ入力者氏名を 入力したら、そのままフォームを閉じるまでその氏名が反映されます。 現在、入力するものにコードというものがあるのですが、これも同じようにできないかと思っています。一日のデータ入力作業では 基本同じコードを使用し、一回一回コードを入力していました。 やはり人間の手によるものですから間違いがあり、 違うコードを入力してしまうと行方不明になってしまうのです。 コードも上記の入力者氏名と同じように、 フォームを開く際に出てくる小窓での入力は可能でしょうか? ちなみに現在商品コードを入力したら、コードの種別タイトルという ものが自動で出力される仕組みになっています。 それも反映されないといけないのです。 なにかお知恵を拝借させていただければと思います。 足りない情報があればご指摘ください。 宜しくお願いいたします。
- ベストアンサー
- その他(データベース)
- Excel VBA インプットボックス空文字を入力
いつもお世話になっています。 下記のような入力処理をインプットボックスで行いたいと考えています。 勤務先は場合によっては不要なのでパスして次に移りたいのですが 空文字だとOKをクリックしても、キャンセルをクリックしても処理が終わってしまいます。 勤務先 = InputBox("勤務先を入力") If 勤務先 = "" Then Exit Sub ActiveCell.Value = 勤務先 ActiveCell.Offset(0, 1).Select 氏名 = InputBox("氏名を入力") If 氏名 = "" Then Exit Sub ActiveCell.Value = 氏名 空文字のままOKもしくはキャンセルでも次の処理に移るにはどうしたらよいでしょうか。 お力添えをお願いいたします。
- ベストアンサー
- その他MS Office製品
- OKを押してもキャンセルを押しても、反応しない
このコード、どこが間違ってるか教えてもらえますか? Sub test() Dim ret As Variant ret = InputBox("タイトルを入力してください。") If TypeName(ret) = "Boolean" Then MsgBox "キャンセルが選択されました" End If End Sub これで、キャンセルボタンを押しても、メッセージボックスが表示されません。 間違えてる部分がわかりません。
- ベストアンサー
- オフィス系ソフト
- inputbox のキャンセルの戻り値について(VBA×エクセル)
VBA初心者で、ユーザフォームにはまだ手出ししたくなく、INPUTBOXで値を取得しているのですが、 INPUTBOXでキャンセルボタンを押したときに、マクロを終了するように書きたいのですが、どのように記述したらよいのでしょうか? INPUTBOXからはどんな値が返ってきているかわからず、 メッセージボックスで確認してみたのですが、空欄なので、 IF RetIPT ="" then マクロ終了 endif としてみたのですが、「マクロ終了」には進んでくれず... 回答をお願いします~
- ベストアンサー
- オフィス系ソフト
- InputBox キャンセルボタンが押された時の処理
こんばんは。 Sub test() Dim タイトル As String タイトル = InputBox("タイトルを入力してください。") If Cancel = True Then Exit Sub ’次のコード・・・ ’次のコード・・・ End Sub このコードを実行した時に 下記のダイアログが出てきて 右のキャンセルボタンを押すと、 「If Cancel = True Then Exit Sub」 でsubステートメントを抜けたいのですが 「Cancel」の部分が 「変数が定義されていません」とエラーになってしまいます。 Dim Cancel As Boolean を追加してキャンセルボタンを押しても TrueではなくFalseになってしまいます。 回避方法を教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルマクロでinputboxメソッドゼロ入力
エクセル2007です。 以下のマクロで、inputboxメソッドで質問させると、キャンセルボタンを押すと、うまいぐあいに止まります。 しかし、0を押しても、止まってしまいます。本当は、C2にゼロと表示させたいのです。 Sub 練習() Dim myR myR = Application.InputBox(prompt:="数量を入力しなさい", Type:=1) If myR = False Then Exit Sub Range("C2").Value = myR End Sub
- ベストアンサー
- Excel(エクセル)
- inputboxの日本語入力切替について
VBAのinputbox関数についての質問です inputboxを使ってデータの入力をしたいのですが、日本語入力のONとOFFを自動的に切り替えられる記述はありませんでしょうか。 現在の記述は sub 入力() Dim simei As String simei = InputBox("氏名を入力してください") range("b5").Value = Simei End su のような感じです。inputboxを表示するまえに、言語バーの日本語入力がONの状態になるようにしたいのですが…。よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- マクロ inputbox ブランクで入力した時
いつも回答して頂きありがとうございます。 InputBoxに何も入力せず、OKを押してしまった場合、マクロの処理を終了させたいのですが、どうしたらよろしいでしょうか?宜しくお願い致します。 Sub 名前を入力する() Dim a As Long a = Application.InputBox("班を数字で入力して下さい。", Type:=1) If a = 0 Then MsgBox "キャンセルされました。", vbOKOnly Exit Sub End If With ActiveSheet .Range("E4:F5").Value = Worksheets("名前一覧").Cells(2, a).Value End With End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルVBA、入力しないと閉じないInputBox
必ず何かを入力しないと閉じないInputBoxを作ろうと思います。 以下のコードで入力がなければ閉じないというか、Line:に戻るので、何度でも現れるInputBoxになるようですが、このやり方は正しいですか? 通常はどうやるのでしょうか? Sub test() Dim a line: a = Application.InputBox("必ず入力して下さい。", "Input!") If Len(a) = 0 Or a = False Then GoTo line MsgBox "有難う。" & a & " ですね。", , "(o。_。)oペコッ" End Sub
- ベストアンサー
- オフィス系ソフト
- xlAPPがないと、キャンセルしても無視される
Sub xlAPPがある場合() Dim xlAPP As Application Dim strPathName As String, vntPathName As Variant Dim strFileName As String Set xlAPP = Application 'ここでわざとESCキーかキャンセルを押す vntPathName = xlAPP.InputBox("参照するフォルダ名を入力して下さい。", , "C:\") If VarType(vntPathName) = vbBoolean Then MsgBox "キャンセルがクリックされました" Exit Sub End If End Sub Sub xlAPPがない場合() Dim strPathName As String, vntPathName As Variant Dim strFileName As String 'ここでわざとESCキーかキャンセルを押す vntPathName = InputBox("参照するフォルダ名を入力して下さい。", , "C:\") ’無視される If VarType(vntPathName) = vbBoolean Then MsgBox "キャンセルがクリックされました" Exit Sub End If End Sub ************************************************** InputBoxを開いた時にキャンセルするふたつのプロシージャーを比較した時に、 xlAPPがないコードは、キャンセルしても無視されます。 xlAPPがどんな役割をしているのか、 xlAPPがないと、なぜ無視されるのかがわかりません。 あと、二つを比較すると、表示されるInputBoxの形式も違います。 ご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
補足
回答ありがとうございます! これはこのままコピペでいけるんですかね? 保存ツアーNo = Me!ツアーNoの場所で型が一致しませんって出ました。 ツアーNoって名前はあってるんですけど。。