Excel VBA質問箱 IV

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

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


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

【77146】一覧から参照 ☆Nonoka☆ 15/5/26(火) 16:18 質問[未読]
【77152】Re:一覧から参照 γ 15/5/27(水) 22:03 発言[未読]
【77177】Re:一覧から参照 ☆Nonoka☆ 15/6/2(火) 13:15 発言[未読]
【77178】Re:一覧から参照 γ 15/6/2(火) 20:53 回答[未読]

【77146】一覧から参照
質問  ☆Nonoka☆  - 15/5/26(火) 16:18 -

引用なし
パスワード
   いつもお世話になります。
教えてください。
コスト表を作成しています。
sheet2のB列4行目から下に銘柄、C列4行目から下に値段の一覧表があります。
これは銘柄が増えていきます。
sheet1のK列3行目から下に銘柄を入力します。
入力された銘柄とsheet2のB列の銘柄が同じものがあればその横のセルC列の値段をsheetL列に表示させたいです。

簡単に言いますとsheet2の一覧から値段を拾って来たいです。
sheet1のK列に入れた途端にとなりのL列に値段が出るようにしたいです。
宜しくお願い申し上げます。

【77152】Re:一覧から参照
発言  γ  - 15/5/27(水) 22:03 -

引用なし
パスワード
   こんにちは。
changeイベントプロシージャを利用してもよいですが、
VLOOKUPを使った計算式を利用するのではダメなんですか?
比較的よく使われる関数だと思います。

【77177】Re:一覧から参照
発言  ☆Nonoka☆  - 15/6/2(火) 13:15 -

引用なし
パスワード
   ▼γ さん:
>こんにちは。
>changeイベントプロシージャを利用してもよいですが、
>VLOOKUPを使った計算式を利用するのではダメなんですか?
>比較的よく使われる関数だと思います。

γさん
返信ありがとうございます。
返信遅くなって申し訳ありません。
関数ですとリストが増えるため、効率に限界があります。
その為、困っています。

【77178】Re:一覧から参照
回答  γ  - 15/6/2(火) 20:53 -

引用なし
パスワード
   ▼☆Nonoka☆ さん:
>返信遅くなって申し訳ありません。
>関数ですとリストが増えるため、効率に限界があります。
限界があるとは、どのくらいの行数ですか?
実際に限界に達しているのですか?


ワークシートのイベント処理についてはこちらを参照。
ht  tp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html

------------
書き方の一例です。
これをSheet1のシートモジュールにコピーペイストしてから、
K列に入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim v As Variant

  If Target.Count > 1 Then Exit Sub   ' 複数領域が同時に変更されたら終了
                     ' 逆に、複数領域についても対象にしたいなら、
                     ' 繰り返し処理を行います。(応用編はそちらで)
  If Target.Column <> 11 Then Exit Sub ' K列以外なら終了

  v = Application.VLookup(Target.Value, Worksheets("Sheet2").Range("B:C"), 2, False)
  If IsError(v) Then
    MsgBox Target.Value & " は見つかりませんでした"
  Else
    Application.EnableEvents = False
    Target.Offset(0, 1).Value = v
    Application.EnableEvents = True
  End If
 
End Sub

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