Excel VBA質問箱 IV

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

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


9270 / 13646 ツリー ←次へ | 前へ→

【28302】vlookupでは少々つらいのでシートイベント 悩める愚者 05/9/2(金) 12:16 質問[未読]
【28306】Re:vlookupでは少々つらいのでシートイベン... ちくたく 05/9/2(金) 13:00 回答[未読]
【28316】Re:vlookupでは少々つらいのでシートイベ... 悩める愚者 05/9/2(金) 13:50 質問[未読]
【28319】Re:vlookupでは少々つらいのでシートイベ... ちくたく 05/9/2(金) 14:00 回答[未読]
【28329】Re:vlookupでは少々つらいのでシートイベ... 悩める愚者 05/9/2(金) 15:20 お礼[未読]

【28302】vlookupでは少々つらいのでシートイベント
質問  悩める愚者  - 05/9/2(金) 12:16 -

引用なし
パスワード
   エクセル2000を使い、商品を管理するシートで、
A列に商品コードを入れるとB列に品名がでるようにしています。
現在は別のシートに商品コードと品名の一覧を持っていて
vlookupで表示させていたのですが、
シートに関数が見えてしまって見栄えが悪いのと
商品の種類も少ないので、別にシートを用いずに、
シートイベントを使ってできないものかと思いましたが、
どのようにしたらよいでしょうか?
よろしくお願いします。

【28306】Re:vlookupでは少々つらいのでシートイベ...
回答  ちくたく  - 05/9/2(金) 13:00 -

引用なし
パスワード
   こんにちは。
エラー処理はしてません。
ThisWorkbookか、シートかのChangeイベントで設定。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

  Select Case Target.Value
  Case 1
    Target.Offset(0, 1).Value = "商品1"
  Case 2
    Target.Offset(0, 1).Value = "商品2"
  End Select

End Sub

【28316】Re:vlookupでは少々つらいのでシートイベ...
質問  悩める愚者  - 05/9/2(金) 13:50 -

引用なし
パスワード
   ちくたくさんありがとうございます。
意図したとおりの動作が出来ました!

ですがこのコードだと商品コードに該当するものがあると、
隣の列に品名が出てしまいますよね?
商品個数が後ろのほうの列にあってコードとかぶった次の列に
品名が出てしまったりします。

たとえばB列に商品コードを入れ、Bのみ参照するような方法はありませんか?

【28319】Re:vlookupでは少々つらいのでシートイベ...
回答  ちくたく  - 05/9/2(金) 14:00 -

引用なし
パスワード
   こんにちは。

>たとえばB列に商品コードを入れ、Bのみ参照するような方法はありませんか?

最初はA=商品コード、B=商品名でしたので、そのように作りました。
最初にIf文でひっかけてください。A列なら1、B列なら2みたいな。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  
  If CInt(Target.Column) = 1 Then
    Select Case Target.Value
    Case 1
      Target.Offset(0, 1).Value = "商品1"
    Case 2
      Target.Offset(0, 1).Value = "商品2"
    End Select
  End If
End Sub

【28329】Re:vlookupでは少々つらいのでシートイベ...
お礼  悩める愚者  - 05/9/2(金) 15:20 -

引用なし
パスワード
   ちくたくさん、説明不足でお手間を取らせてしまいごめんなさい。
すべて解決しました。
ありがとうございました。

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