Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2965 / 13644 ツリー ←次へ | 前へ→

【65026】入力規則で選択したらシートに自動で入力させたいのですが。 kyo 10/4/4(日) 15:11 質問[未読]
【65029】Re:入力規則で選択したらシートに自動で入... 247b 10/4/5(月) 11:40 回答[未読]
【65033】Re:入力規則で選択したらシートに自動で入... sige 10/4/6(火) 0:40 質問[未読]
【65034】Re:入力規則で選択したらシートに自動で入... りん 10/4/6(火) 7:35 発言[未読]
【65039】Re:入力規則で選択したらシートに自動で入... sige 10/4/6(火) 12:57 お礼[未読]

【65026】入力規則で選択したらシートに自動で入力...
質問  kyo  - 10/4/4(日) 15:11 -

引用なし
パスワード
   Sheet1 フォーム
 A列    B列
1氏名      社員番号を入力
2電話番号
3生年月日
4社員番号

Sheet2 データ
 A列 B列      C列         D列
1氏名  電話番号    生年月日       社員番号
2田中  03-0000-0000  平成2年1月1日    001
3山田  03-1111-1111  平成2年2月1日    002
4鈴木  03-2222-2222  平成2年3月1日    003
5佐藤  03-3333-3333  平成2年4月1日    004
6斉藤  03-4444-4444  平成2年5月1日    005

Sheet1のB1に社員番号を入力した時に、
A列の1〜4に該当する情報が出るようにしたいのですが
方法はありますでしょうか?

【65029】Re:入力規則で選択したらシートに自動で...
回答  247b  - 10/4/5(月) 11:40 -

引用なし
パスワード
   こんな感じで使い物になるでしょうか。
以下のプロシージャは、Sheet1のクラスモジュールにコピーしてください。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  Dim r2 As Long 'Sheet2行カウンタ
  Dim TargetId As String '社員番号保持
  Static Processing As Boolean
  
  'プログラムから値コピーしてもイベントが発生するため、止めるフラグ
  If Processing Then Exit Sub
  
  '変更が入ったセルがB1の時のみに限定
  If Target.Address = "$B$1" Then
    'カウンタ初期化
    r2 = 2
    'ID確保、念のため半角文字へ変換
    TargetId = StrConv(Target.Value, vbNarrow)
    Do Until IsEmpty(Sheet2.Cells(r2, 4).Value)
      If Sheet2.Cells(r2, 4).Value = TargetId Then
        Processing = True
        Sheet1.Cells(2, 1).Value = Sheet2.Cells(r2, 2).Value
        Sheet1.Cells(3, 1).Value = Sheet2.Cells(r2, 3).Value
        Sheet1.Cells(4, 1).Value = Sheet2.Cells(r2, 4).Value
        Processing = False
        Exit Do
      End If
      r2 = r2 + 1
    Loop
  End If
  Processing = False
End Sub

【65033】Re:入力規則で選択したらシートに自動で...
質問  sige  - 10/4/6(火) 0:40 -

引用なし
パスワード
   247bさん

横から失礼致します。
似たような事をしたく、参考にさせて頂いています。
Sheet1のクラスモジュールとは、どこにあるのでしょうか?
Sheet1の中にクラスモジュールは、あるのでしょうか?
あまりにも初心者的な質問ですが,宜しくお願い致します。

【65034】Re:入力規則で選択したらシートに自動で...
発言  りん E-MAIL  - 10/4/6(火) 7:35 -

引用なし
パスワード
   sige さん、おはようございます。

>Sheet1のクラスモジュールとは、どこにあるのでしょうか?
>Sheet1の中にクラスモジュールは、あるのでしょうか?
Sheet1のタブで右クリック → コードの表示
または、VBEのプロジェクトエクスプローラでSheet1をダブルクリック
で表示されたコードウィンドウに書きます。
ウィンドウタイトルに
 Microsoft Visual Basic - [ブック名] - Sheet1(コード)
と表示されます

【65039】Re:入力規則で選択したらシートに自動で...
お礼  sige  - 10/4/6(火) 12:57 -

引用なし
パスワード
   りんさん
有り難うございます。
もっと勉強します。

2965 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free