- ベストアンサー
VBAで未記入箇所がある場合のメッセージボックスを開く方法
- VBAを使用して、A1、B1、C1、D1、F1の中で一箇所でも入力された場合にメッセージボックスが開くようにする方法を教えてください。
- 全てのセルが入力されているか全てが空欄かを判定し、条件に応じてメッセージボックスを表示させたいです。
- A1とB1のみならば、上記のコードで問題ありませんが、複数のセルを判定する場合にはどうすれば良いですか?
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (9)
- kkkkkm
- ベストアンサー率65% (1641/2490)
- kkkkkm
- ベストアンサー率65% (1641/2490)
- HohoPapa
- ベストアンサー率65% (455/693)
- watabe007
- ベストアンサー率62% (476/760)
- kkkkkm
- ベストアンサー率65% (1641/2490)
- HohoPapa
- ベストアンサー率65% (455/693)
- kkkkkm
- ベストアンサー率65% (1641/2490)
- HohoPapa
- ベストアンサー率65% (455/693)
- watabe007
- ベストアンサー率62% (476/760)
関連するQ&A
- VBA 2つのセルの両方に記入しないと空欄
お世話になります。 VBAでの質問です。 (1)下記でA1が空欄ならメッセージボックスで"未記入箇所があります。"とでますが、 A1、B1のどちらかに文字が入っていれば メッセージボックスを表示させたいです。 ※どちらも未記入、どちらも記入の場合はメッセージなしです。 If Application.CountBlank(Range("A1")) Then MsgBox "未記入箇所があります。" Exit Sub End If もしくは (2)A1に『111』B1に『』と、どちらか未記入の場合C1は空欄になる 計算式を教えて頂きたいです。 どちらも未記入、どちらも記入の場合は何かC1に文字が入る計算式 (C1への入力は何でも良いです) ((1)が不可能な場合、(2)のC1を(1)のメッセージボックスにあてます) ※A1,B1の入力文字は数字や文字など多種 ※A1,B1,C1のセルは離れています。 ※『』は空欄の意味です。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- 未記入箇所がある場合メッセージボックス
お世話になります。 以前https://okwave.jp/qa/q9623125.htmlで質問させて頂きました。 ベストアンサー様や他の回答者様のおかげで解決しましたが、 選択セルを増やさないといけなくなりました。 ベストアンサー様の Dim i As Long For i = 10 To 24 If MFind(i) = False Then Exit Sub Next For i = 28 To 39 If MFind(i) = False Then Exit Sub Next 'VBA高速(終わり) Application.ScreenUpdating = True End Sub Function MFind(ByVal i As Long) As Boolean Dim URange As Range MFind = True Set URange = Union(Range(Cells(i, "B"), Cells(i, "C")), Cells(i, "N"), Range(Cells(i, "Q"), Cells(i, "R"))) If WorksheetFunction.CountA(URange) > 0 And _ WorksheetFunction.CountA(URange) < URange.Count Then MsgBox i & "行に未記入箇所があります。", vbInformation MFind = False End If End Function を使わせて頂いていますが、 この参照セルを『B C N Q R』ではなく『B C D H J K M N O P Q R』にするには どうすれば良いでしょうか? ※過去の質問にも記載していますが、1行だけではありません。 ※B~Rのセルで行により結合させているセルもあります。
- ベストアンサー
- Visual Basic
- 効率の良いテキストボックスの検知について
VB6の初心者です。質問させていただきます。 画面上に5つのテキストボックス(TEXT1、TEXT2、TEXT3、TEXT4、TEXT5)と 1つのコマンドボタン(Cmd_SAVE)があり、 画面上の5つのテキストボックスをすべて記入し、 コマンドボタンを押すと、登録確認のメッセージボックスが表示され、 OKボタンを押すと、サーバへ転送され、 画面上のテキストボックスにひとつでも空欄があると、どのテキストボックスが 空欄であるかを示すメッセージが表示される処理をさせています。 そこで質問なのですが、今、メッセージボックス、登録処理は出来るようになったのですが、 とても処理の効率が悪い、もっと空欄を確認するのにすっきりとしたコードはある、と知り合いに言われました。 おそらく、繰り返し等を用いると思うのですが、メッセージにそれぞれのオブジェクト名を代入するやり方がわかりません。 下記が今のコーディングです。 Private Sub Cmd_SAVE_Click() If TEXT1.Text = "" Then MsgBox "TEXT1が登録されていません", vbOKOnly, "警告" Exit Sub End If If TEXT2.Text = "" Then MsgBox "TEXT2が登録されていません", vbOKOnly, "警告" Exit Sub End If If TEXT3.Text = "" Then MsgBox "TEXT3が登録されていません", vbOKOnly, "警告" Exit Sub End If If TEXT4.Text = "" Then MsgBox "TEXT4が登録されていません", vbOKOnly, "警告" Exit Sub End If If TEXT5.Text = "" Then MsgBox "TEXT5が登録されていません", vbOKOnly, "警告" Exit Sub End If If MsgBox("入力データを登録しますか?", vbOKCancel, "登録確認") = vbCancel Then Exit Sub End If End If ~登録処理~ End Sub どのような書き方がきれいで、効率的なコーディングなのでしょうか? ご教示お願いします!
- 締切済み
- Visual Basic
- エクセルでVLOOKUPで検出できなかったらメッセージボックスを出した
エクセルでVLOOKUPで検出できなかったらメッセージボックスを出したい。 シート1のセルB1に =VLOOKUP(A1,シート2!B2:F1000,2,FALSE) と式を入れてあります。 シート1のセルA1に入力をするとシート2のB列から入力した同レコード を抽出しその行のC列を シート1のセルB1に表示します。 シート2に同レコードが無ければ セルB1には #N/A と表示されます。 この時にこの#N/Aの表示をトリガーに メッセージボックスで 「データーがありません」と表示させるのはどうしたらいいでしょうか? マクロを組みましたが、わざとシート2にはない値を入力した時に メッセージボックスが表示される場合と表示されない場合があって困っています。 ------------------------------------------------ Range("B1").Select If IsError(ActiveCell.Value) Then errval = ActiveCell.Value Select Case errval Case CVErr(xlErrDiv0) MsgBox "#DIV/0! エラー" Case CVErr(xlErrNA) If vbOK = MsgBox(" データーがありません") Then Exit Sub End Select End If ----------------------------------------------- またこのメッセージボックスには「OK」と表示されています。 このOKをクリックすると 登録してある別のマクロを起動させる事はできますか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- メッセージボックス内の予定の表示方法について
Excel 2007を使っており、メッセージボックスに今日の予定をVBAで表示させたいのですが、うまくできませんのでよろしくお願いします。 以下の内容となります。 1.シート1のA列に日付が入力されています。 2.シート1のB列に予定が入力されています。 3.毎日処理するエクセルファイルがあるため、そのファイルを開くと今日の予定をメッセージボックス で表示。 4.今日の予定がない場合は、本日の予定なしを表示。 5.複数の予定がある場合は、順番にメッセージボックスで表示。 以下のものを作りましたが、同じ日付が2つ以上あると一番上のものしか表示されません。 今日の日付がシート1にないとエラーになります。 Sub yotei() Dim RG As Range Dim ms As String ms = ActiveCell.Value For Each RG In Range("A:A") If RG = Date Then Exit For Next RG RG.Select ActiveCell.Offset(, 1).Select MsgBox RG MsgBox ActiveCell.Value End Sub
- ベストアンサー
- その他MS Office製品
- エクセル メッセージボックスにタイトルとアイコンを入れる方法を教えてください。
こんにちは。いつも大変お世話になってます。 If (vbYes <> MsgBox("実行しますか?", vbYesNo)) Then Exit Sub End If 以上のようなVBAを書きました。YESなら実行、NOならキャンセルです。 ここまではなんとかできたのですが、このメッセージボックスにタイトルと?マークのアイコンを追加するにはどうしたら良いのでしょうか?
- ベストアンサー
- オフィス系ソフト
- メッセージボックス表示
VBAでメッセージボックスの表示方法で教えてください。 あるセル、例えばA1に”111”と入力されたらメッセージボックスで ”○○”と出したい場合はどうしたらいいですか。 あと、A1からA3に”111”と入力された場合の複数セルの場合も教えてください。
- ベストアンサー
- Visual Basic
- テキストボックスにデータがある場合にエラーを出す
テキストボックスA テキストボックスB 2つのテキストボックスが両方とも空欄の場合もしくは、データが入っている場合はアラートを出さず、片方のみデータが入力されている時にアラートを出したいと考えています。 以下のソースを書きましたが、両方とも空欄の場合もアラートが出てしまいます。この解決方法をご教示頂けないでしょか?よろしくお願い致します。 if (document.formGeneratorForm["A"].value | !document.formGeneratorForm["B"].value){ alert('Bをご記入下さい。'); return false;reqd_err=1; } if (!document.formGeneratorForm["A"].value | document.formGeneratorForm["B"].value){ alert('記入している方のお名前をご記入下さい。'); return false;reqd_err=1; }
- ベストアンサー
- JavaScript
- メッセージボックスについて
メッセージボックスが消えなくて困っています。 以下のように記述して、TextBox1に文字を4文字入力しないとメッセージボックスが現れますが、OKを押してもメッセージボックスがまた現れてしまい、s1_strの入力側のウィンドウに戻ることができません。 どうしたらいいでしょうか? Do s1_str = TextBox1.Text If (Len(s1_str) = 4 ) = False Then MsgBox("4文字入力してください",MsgBoxStyle.OKOnly, "エラー") End If Loop While (Len(s1_str) = 4 ) = False
- 締切済み
- Visual Basic
- エクセルVBA テキストボックスへのセットフォーカスについて
エクセルVBAでユーザーフォーム内に配置されたテキストボックス への数値の入力時に、指定範囲内になければメッセージボックスで 規格外であることを警告し、その規格外が入力されたテキストボックス を強制的に空欄にし、次のテキストボックスにフォーカスを移動させずに、入力間違いのテキストボックスにフォーカスを戻したいのですが どうすればよいのでしょうか? 自分で考えた構文です。 Private Sub TextBox1_AfterUpdate() Dim A As Single A = TextBox1.Text If A < 1.99 Or A > 3.00 Then MsgBox "規格外!!" TextBox1.Text = "" TextBox1.SetFoucus End If Exit Sub End Sub これですと、次のテキストボックスにフォーカスが移動してしまいます。 次のテキストボックスにフォーカスを移動させずに、規格内の値が 入力されるまでフォーカスを移動させない方法を教えて下さい。 お願い致します。
- ベストアンサー
- Visual Basic
- エラーコード SCPX5V2エラーコード0x F6と0x F3について調査しました。このエラーコードはEPSON製品の一部で発生する問題で、具体的な原因は不明ですが、ファームウェアの更新やデバイスの再起動で解決する可能性があります。
- SCPX5V2エラーコード0x F6と0x F3はEPSON製品のエラーコードです。これらのエラーコードは特定の問題が発生した場合に表示されますが、具体的な原因は不明です。一般的に、ファームウェアの更新や電源のリセットなどのトラブルシューティング手順を試すことで解決することがあります。
- EPSON製品のSCPX5V2エラーコード0x F6と0x F3についての情報をまとめました。これらのエラーコードは何らかの問題が発生した場合に表示されるものであり、具体的な原因は不明です。一般的には、ファームウェアの更新やデバイスの再起動などの対処方法があります。EPSON製品を使用している場合には、このようなエラーコードに遭遇した場合は公式サポートに問い合わせるか、オンラインのフォーラムで情報を探すことをおすすめします。
お礼
ありがとうございます!! 完璧に出来ました!!! 自分の力では自分のVBAに入れるだけで四苦八苦しましたが、 自分が思い描いていたよりはるかに素晴らしいです。 勉強にもなりました。 ありがとうございます。 kkkkkm様をベストアンサーに選ばせていただきましたが、 ご回答頂いた皆様も本当にありがとうございました。