[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データ入力後、帳票印刷時の未入力チェック』(まま)
Book1.xlsmに"台帳"と"帳票"というSheetがあります。
"台帳"はこのようにしていて、A1セルに印刷したいNo,を入力
A B C D ・・・
1
2
3 No,__名前__コード__日付
4 1____AAA___100___2014/1/1
5 2____BBB___105___2014/2/1
6 3____CCC___110___2014/3/1
7 4____DDD___115___2014/4/1
8 5____EEE___________2014/5/1
・ ・
・ ・
・ ・
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
"帳票"では、B2セルに【=台帳!$A$1】
B4セルに【=VLOOKUP($A$1,台帳!$A$4:$D$1000,2)&""】
D4セルに【=VLOOKUP($A$1,台帳!$A$4:$D$1000,3)&""】
B6セルに【=VLOOKUP($A$1,台帳!$A$4:$D$1000,4)】
A B C D ・・・
1
2 No,___1
3
4 名前__AAA__コード__100
5
6 日付__2014/1/1
としているのですが、"台帳"のA1セルに印刷したいNo,を入力後、ボタンをクリックしたら、そのNo,のB列C列D列が全て入力されているか確認し、全て入力されていれば"帳票"のA1:D6を印刷、もし未入力箇所があれば、未入力のため印刷できないとエラーメッセージを出し、印刷できないようにできないでしょうか?
もしできるのであれば、エラーメッセージの後に、未入力箇所にカーソルが移動するなどしたいです。
どなたかお教えください。
< 使用 Excel:Excel2007、使用 OS:WindowsXP >
マクロを使う事になると思いますが、今はマクロは何か使っておられますか? たとえば 今はボタンをクリックしたら、なんでも(入力があってもなくても)印刷する様になっている とか。
それとも今は、人が目で見て確認をして 印刷実行をしているのでしょうか? (HANA) 2014/11/27(木) 16:32
おっしゃる通り未入力があっても、ボタンをクリックするとなんでも印刷がかかってしまいます。
Sub 印刷する()
Sheets("帳票").PrintOut
End Sub
(まま) 2014/11/27(木) 20:25
1.番号を台帳シートのA1セルに入力する様ですが、B1セルに入力してください。 2.帳票シートのVLOOKUP関数の式は 検索の型に「FALSE」を指定してください。 B4セルに【=VLOOKUP($A$1,台帳!$A$4:$D$1000,2,FALSE)&""】 ~~~~~~ コードは、台帳シートをアクティブにして実行してください。
'------ Sub 印刷する2() Dim msg As String With Sheets("帳票") If IsError(.Range("B4").Value) Then MsgBox Range("B1").Value & " の番号はありません。" Else If .Range("B4").Value = "" Then msg = "『名前』" End If If .Range("D4").Value = "" Then msg = "『コード』" End If If .Range("B6").Value = "" Then msg = "『日付』" End If If msg = "" Then .PrintOut Else MsgBox msg & "の入力がありません。" Range("A" & Application.Match(Range("B1").Value, Range("A:A"), 0)).Select End If End If End With End Sub '------ (HANA) 2014/11/27(木) 21:19
ただ、2つ以上未入力があった場合、"『○○』の入力がありません。"が1つでるのですが
"『○○と××』の入力がありません。"とできたりするのでしょうか?
よくばりを言いすみません。
(まま) 2014/11/27(木) 22:32
二つ入力が無かった場合 "『○○』『××』の入力がありません。" と出ると思いますが、『○○』しか出ませんか?
それとも "』『" ではなく、あくまでも "と" でつなげたい と言う事でしょうか? (HANA) 2014/11/28(金) 10:20
あ、わかったかもです。 >B6セルに【=VLOOKUP($A$1,台帳!$A$4:$D$1000,4)】 でしたね。
でしたら、B6セルはデータが無かった場合「0」になっていると思うので If .Range("B6").Value = "" Then ではなく If .Range("B6").Value = 0 Then にしてみて下さい。 (HANA) 2014/11/28(金) 10:25
台帳では2014/1/1と表示されていても71111のような数値になってしまいます。
表示は''日付'にしているのですがm(__)m
(まま) 2014/11/28(金) 12:12
数式の確認ですが 他のセルと同じ様に最後に「&""」をつけていたら外してください。
また、=TYPE(B6) の結果はどのようになりますか? (HANA) 2014/11/28(金) 14:06
ちなみに、 >エラーメッセージで型が一致しませんとでる のは、コードのどの行で、対応するセルの値は何ですか? (HANA) 2014/11/28(金) 16:45
エラーメッセージのウィンドウに [継続(C)] [終了(E)] [デバッグ(D)] [ヘルプ(H)] ってありませんか?
デバッグ(D)を押してもらうと、止まっている所が ハイライトで表示されるのですが。
お伺いしてみるのですが、コードは標準モジュールに入れてありますか? (HANA) 2014/11/28(金) 18:50
帳票シートのシートモジュールにおいていたら Range("A" & Application.Match(Range("B1").Value, Range("A:A"), 0)).Select の所でエラーが出るかもしれないですね。
出社されて時間が取れたら、確認してみて下さい。 (HANA) 2014/11/28(金) 22:33
〉二つ入力が無かった場合 "『○○』『××』の入力がありません。" と出ると思いますが、『○○』しか出ませんか?
『◯◯』しか出なくなりましたm(__)m
(まま) 2014/12/01(月) 10:38
『○○』『××』は 『名前』『コード』『日付』と三つありますが 具体的にどういったパターンの時、どの様に表示されますか?
たとえば、 名前・コードに入力が無い時 『名前』の入力がありません コード・日付に入力が無い時 『コード』の入力がありません パターンが8パターンあると思いますが。
それから、ステップインで実行してもらうと If .Range("B4").Value = "" Then msg = "『名前』" End If If .Range("D4").Value = "" Then msg = "『コード』" End If If .Range("B6").Value = 0 Then msg = "『日付』" End If の所で、入力が無い場合 msg = "『○○』" の方に分岐されないといけません。 問題がある所では、すぐに End If になると思います。 その時、 .Range(○○).Value と書いてある部分の上にマウスポインタを持っていくと セルの値が表示されますので、何が表示されるか確認してみて下さい。 (HANA) 2014/12/01(月) 11:01
2つ以上×があると、日付になってしまいます。
_名前・コード・日付
1. ◯__◯__◯__無
2. ◯__◯__×__『日付』の入力がありません。
3. ◯__×___×__『日付』の入力がありません。
4. ◯__×___◯__『コード』の入力がありません。
5. ×___◯__◯__『名前』の入力がありません。
6. ×___×___◯__『コード』の入力がありません。
7. ×___×___×___『日付』の入力がありません。
8. ×___◯__×___『日付』の入力がありません。
ステップインですが、日付の所がすぐにEnd Ifにいきました。
.Range(○○).Value と書いてある部分の上にマウスポインタを持っていった のですが何も表示されませんでした。
(まま) 2014/12/01(月) 22:47
あ、すみません。コードが間違えてます。
If .Range("B4").Value = "" Then msg = "『名前』" End If If .Range("D4").Value = "" Then msg = msg & "『コード』" End If If .Range("B6").Value = 0 Then msg = msg & "『日付』" End If
でやってみて下さい。
(HANA) 2014/12/01(月) 23:35
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.