質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

1294閲覧

求む、VBAの記述例

aki1981

総合スコア7

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/08/10 06:30

VBA初心者です。
どこから手を付けていいかも分からず困っています。

VBAで入力チェック
・有無
・形式:文字か数字の判定
・範囲チェック
・整合性チェック
エラーがあればメッセージを出力し、画面の再出力

考え方も教えてもらえると幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

VBAはエクセルでしょうか?
VBAじゃないとダメなのでしょうか?

「データの入力規則」で全部できるような?

セルにデータの入力規則を適用する

フォームを使ったVBA限定であればスルーしてください。

投稿2017/08/10 07:18

jm1156

総合スコア866

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aki1981

2017/08/10 07:21

エクセルのVBAです。
guest

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

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aki1981

2017/08/10 07:03

正しい質問のやりかたもわからない状況です。 指摘していただいて、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問