![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_08.png?e8efa67)
大変困っているので助けてください。
A列に「会員番号」、B列に「名前」、C列に「住所」・・・と言った感じのデータがあります。
Input BoxまたはUser Formを使って会員番号を入力し、該当したときにその隣(例えばD列)に「1」などの値を入力できる方法。
または、上記のデータと別のデータ(項目は同じ)を照合し一致しない物を別のシートに表示するという形でもいいです。
仕事で早急に必要なのですが、VBAの知識があまり無いのでいろいろ試行錯誤しましたができません。
お願いします。
No.2ベストアンサー
- 回答日時:
> A列に「会員番号」、B列に「名前」、C列に「住所」・・・と言った感じのデータがあります。
これをSheet1とします。
> 上記のデータと別のデータ(項目は同じ)
これをSheet2とします。
> 一致しない物を別のシートに表示
これをSheet3とします。
Sheet1にあってSheet2に存在しない会員番号のA~C列をSheet3に表示するVBAです。
Sub test()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
Set sh3 = Sheets("Sheet3")
For i = 1 To sh1.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
Set x = sh2.Columns("A").Find(What:=sh1.Cells(i, "A"), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If x Is Nothing Then
r = r + 1
For n = 1 To 3
sh3.Cells(r, n) = sh1.Cells(i, "A").Offset(0, n - 1).Value
Next n
End If
Next i
End Sub
Sheet2にあってSheet1にないデータもちょっと応用すればこれで出来ますよね?
No.3
- 回答日時:
こんにちは。
KenKen_SP です。> Input BoxまたはUser Formを使って会員番号を入力し、該当したときにその隣
>(例えばD列)に「1」などの値を入力できる方法。
ご参考までに。
'// InputBox で会員番号を入力し、該当セルの行D列に1を書き込む
Sub Sample1()
Dim strCode As String
Dim rngSA As Range
Dim rngFC As Range
Dim Sh As Worksheet
'検索するシートを定義
Set Sh = ThisWorkbook.Sheets("Sheet1")
'検索する受付番号を取得
'0で始まる文字列の数字があるかも知れないので文字列型変数で受ける
strCode = Application.InputBox("会員番号を入力", Type:=2)
'キャンセルボタンクリックなら終了
If UCase$(strCode) = "FALSE" Then Exit Sub
'会員番号の検索範囲を取得
'Sheet1の使われている範囲とA列の交差範囲=検索範囲
Set rngSA = Intersect(Sh.UsedRange, Sh.Range("A:A"))
'検索範囲から入力された会員番号を探す
Set rngFC = rngSA.Find(What:=strCode, LookAt:=xlWhole)
If rngFC Is Nothing Then
'該当番号が無ければ警告を表示
MsgBox "該当する会員番号はありません!", vbCritical, "エラー"
Else
'該当番号があれば変数 rngFC には見つかったセルがセットされている
'そのセル(A列)からOffset(行,列)で3つ横=D列のセルに1を書き込み
'移動する
rngFC.Offset(0, 3).Value = 1
Application.Goto Reference:=rngFC
End If
'変数をクリア(オブジェクト変数はできるだけ明示的にクリアして下さい)
Set rngFC = Nothing
Set rngSA = Nothing
Set Sh = Nothing
End Sub
No.1
- 回答日時:
標準モジュールに
Sub test01()
d = Range("A65536").End(xlUp).Row
'---
Do
n = InputBox("会員番号=")
If n = "99999" Then Exit Sub '終わり
fnd = "n"
For i = 1 To d
If Cells(i, "A") = Val(n) Then
Cells(i, "D") = 1
fnd = "y"
End If
Next i
If fnd <> "y" Then
MsgBox n & "は見つかりません"
End If
Loop
End Sub
一番初歩的なロジックで。
データ数が多く、反応がいらいらするぐらい遅い場合は、他の方法を使ってください。
ありがとうございます。
初心者の私にはわかりやすい内容でした。
が、imogasiさんの言うとおり「反応が遅い」と言うより、
フリーズしてしまいました・・・
せっかく教えていただいたのにスミマセン。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) 指定した条件でTRANSPOSE関数を使う 5 2023/08/18 19:45
- Visual Basic(VBA) evcel VBAについて 2 2022/08/02 21:37
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELでタイトル行と一番下の行...
-
エクセル 印刷範囲外を非表示...
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
エクセルの計算式でコンマを付...
-
LINEのこの空白ってどんな意味...
-
エクセルでページごとにヘッダ...
-
INDEXとMATCH関数で#N/Aが出る...
-
エクセルで囲み線で出来ますか?
-
名簿の漢字名を関数で半角カナ...
-
エクセルでハイパーリンクのコピー
-
EXCEL 連動したドロップダウン...
-
エクセルでオートサムを使った...
-
16桁以上の「0」に変換されてし...
-
オートフィルを列すべて(一番...
-
bashでの空白と空文字の判断
-
エクセルでの『セルの書式設定...
-
EXCELのNOW()関数の...
-
エクセルでleft関数の結果が表...
-
Excelのテーブル上のセルの保護...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELでタイトル行と一番下の行...
-
エクセル 印刷範囲外を非表示...
-
Excelでデータの抽出&別シート...
-
【エクセル】端の列や行を再表...
-
Windows Media Player11で曲の...
-
EXCEL2000:数字の前に0を3つ付...
-
D2に商品札番号を指定していま...
-
Excel VBAで会員データをある条...
-
再表示を押しても復活しない・・?
-
windowsメディアプレイヤーにつ...
-
Excel2007で最大化しても列番号...
-
エクセルのリストの範囲を可変...
-
「Excel VBA 相対参照から相対...
-
EXCELのシートの範囲を限定する
-
Excelにて隠された行の再表示
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
LINEのこの空白ってどんな意味...
-
Wordの差し込み印刷で空白行が...
-
エクセルで「-3E+06」と...
おすすめ情報