VBA初心者です。
どこから手を付けていいかも分からず困っています。
VBAで入力チェック
・有無
・形式:文字か数字の判定
・範囲チェック
・整合性チェック
エラーがあればメッセージを出力し、画面の再出力
考え方も教えてもらえると幸いです。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
1.ファイルメニュー、オプション、リボンのユーザー設定で開発タブにチェックを入れる。
2.開発タブ、挿入、フォームコントロールのボタンでシート上に適当にボタンを配置。
3.マクロの登録画面が表示されるので、新規作成ボタンを押す。「Sub ボタン1_Click() ~ End Sub」と言うようなコードが作成される。
4.コードを書く。
VBA
1Sub ボタン1_Click() 2 '有無 3 If IsEmpty(Sheet1.Range("B1").Value) Then 4 MsgBox "セルB1に値が入力されていません。" 5 Sheet1.Range("B1").Activate 6 Exit Sub 7 End If 8 9 '形式:文字か数字の判定 10 If Not IsNumeric(Sheet1.Range("B2").Value) Then 11 MsgBox "セルB2に数値が入力されていません。" 12 Sheet1.Range("B2").Activate 13 Exit Sub 14 End If 15 16 '範囲チェック 17 If Sheet1.Range("B3").Value < 1 Or Sheet1.Range("B3").Value > 5 Then 18 MsgBox "セルB3は1~5の範囲の値を入力してください。" 19 Sheet1.Range("B3").Activate 20 Exit Sub 21 End If 22 23 '整合性チェック 24 If Sheet1.Range("B3").Value = 1 And IsEmpty(Sheet1.Range("B4").Value) Then 25 MsgBox "セルB3が1のとき、セルB4に値を入力してください。" 26 Sheet1.Range("B4").Activate 27 Exit Sub 28 End If 29 If Sheet1.Range("B3").Value <> 1 And Not IsEmpty(Sheet1.Range("B4").Value) Then 30 MsgBox "セルB3が1以外のとき、セルB4に値は入力できません。" 31 Sheet1.Range("B4").Activate 32 Exit Sub 33 End If 34 35 MsgBox "チェックOK" 36End Sub 37
あとはボタンを押せば動作すると思います。
投稿2017/08/11 02:34
退会済みユーザー
総合スコア0
0
投稿2017/08/10 07:18
総合スコア866
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
批判殺到な質問ですね。
対象がワークシートなのかフォームなのかで書き方はことなりますが、概ね次のような感じでしょう。
・有無
VBA
1If 対象 <> "" Then 2 ' データ有り 3Else 4 ' データ無し 5End If
・形式:文字か数字の判定
VBA
1If IsNumeric(対象) Then 2 ' 数値 3Else 4 ' 数値ではない 5End If
・範囲チェック
VBA
1' 以上・以下(<=)にするか、より大きい・小さい(<)にするかは適宜判断してください 2If 下限値 <= 対象 And 対象 <= 上限値 Then 3 ' 範囲内 4Else 5 ' 範囲外 6End If
・整合性チェック
仕様によるものなのでここでは答えられません。
エラーがあればメッセージを出力し、画面の再出力
VBA
1If 入力エラー時 Then 2 MsgBox "入力エラー" 3End If
画面の再出力の意味がわからないので無回答。
MsgBoxの仕様は下記リンクを参照してください。
https://msdn.microsoft.com/ja-jp/library/office/gg251821.aspx
投稿2017/08/10 07:01
総合スコア16998
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。