ここから本文です

エクセルのシートのA列のセルに1から100まで数字が入力されており、フォームを使っ...

kur********さん

2017/2/2510:48:44

エクセルのシートのA列のセルに1から100まで数字が入力されており、フォームを使ってB列のセルや他の列のセルに値を入力しています。

フォーム入力の際は
TargetRow = .Range(“B101”).End(xlUp).Offset(1).Row
のコードを使って入力しています。
この時、その入力された行の、あらかじめ入力しているA列のセルの数字を使って、”〇〇番で入力されました”とメッセージが出るようにしたいのです
A1のセルに1と入力されている行に、フォーム入力でB1のセルに値が入力された時、”1番で入力されました”とメッセージが出るようにし、次に、フォーム入力した時は、B2のセルに入力されるので、入力後、その行のA2のセルに入力されている2を使って”2番で入力されました”とフォームで入力するたびメッセージが出るようにして行きたいのです。
自分の頭では、書籍を読んでも、うまくコードを組めません( T_T)
どなたか、助けて下さい、お願いしますm(_ _)m

閲覧数:
73
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2017/2/2511:19:43

↓のような例文が欲しいということですか?

Dim rng As Range
Set rng = Cells(Rows.Count, 2).End(xlUp).Offset(1)
rng.Value = TextBox1.Value
MsgBox rng.Offset(, -1).Value & "番で入力されました"

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

nag********さん

2017/2/2512:37:27

フォームで入力された値をB列に設定している、とのことなのでシートモジュールのWorksheet_Changeイベントを記述すればメッセージを表示することが出来ます。
下記のコードをシートモジュールにコピペして下さい。


Option Explicit
'セルが変更された時の処理
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, num As Long

'変更されたすべてのセルについて繰り返す
For Each rng In Target.Cells

'変更されたセルがB列のとき
If rng.Column = 2 Then

'A列の内容を取得する
num = Val(rng.Offset(, -1).Value)

'内容が1から100のとき
If num >= 1 And num <= 100 Then
'メッセージを表示する
MsgBox num & "番で入力されました"
End If

End If

Next rng

End Sub

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる