OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

オートフィルタと同じ事をフォームで・・・・

  • すぐに回答を!
  • 質問No.141099
  • 閲覧数383
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 26% (4/15)

以下の質問について、至急、回答をください。お願いします。

質問1)
出荷.xlsというBookが存在します。その中に、"出荷リスト"というシートがあり、A列に商品コード、B列に商品名が重複して多数存在します。各列に、オートフィルタをかけ、▼をクリックした時に表示されるリストをフォームのコンボボックスに表示させる方法。

質問2)
フォームのコンボボックスに表示された任意の商品コードを選択時に、テキストボックスに選択された、商品コードの商品名を表示させる方法。

※できれば、コードを記述していただくとありがたいのですが・・・
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

Excel97なら、
rc = 0: ReDim SyohinName(0) '商品名をクリア
の次に、
ws.Activate: Range("A1").Select
を入れてみてください。
お礼コメント
mino3

お礼率 26% (4/15)

補足を投稿した後、自分なりに予期せぬエラーの原因を追求してみました。UserFormのRowSourceプロパティに値が入力されていて、エラーがでてしまったようです。自分のミスでした・・・・・。回答の方、ありがとうございました。また宜しくお願いします。
投稿日時 - 2001-10-03 14:51:20
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

質問の『フォームのコンボボックスに表示させる』の『フォーム』はユーザーフォームと解釈しましたが・・・違った? フォーム(オブジェクト名:UserForm1)には、  コンボボックス(オブジェクト名:ComboBox1)  テキストボックス(オブジェクト名:TextBox1) があるとします。 ワークシート出荷リストのA1には『商品コード』、B1には『商品名』の表題があり、2行目からデータが入力 ...続きを読む
質問の『フォームのコンボボックスに表示させる』の『フォーム』はユーザーフォームと解釈しましたが・・・違った?

フォーム(オブジェクト名:UserForm1)には、
 コンボボックス(オブジェクト名:ComboBox1)
 テキストボックス(オブジェクト名:TextBox1) があるとします。
ワークシート出荷リストのA1には『商品コード』、B1には『商品名』の表題があり、2行目からデータが入力されているとします。

フォームを呼び出す時にコンボボックスのリストを定義しています。
下記をUserForm1のコードウインドウに貼り付けます。


Dim SyohinName() As String '商品名用配列

'フォームを開く時の処理
Private Sub UserForm_Initialize()
  Dim ws As Worksheet 'ワークシート
  Dim rg As Range 'セル
  Dim rc As Long '行カウンタ
  Set ws = Worksheets("出荷リスト")

  ComboBox1.Clear 'コンボボックスをクリア
  rc = 0: ReDim SyohinName(0) '商品名をクリア
  For Each rg In ws.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
    If rg.Column = 1 Then 'A列の場合
      If rg.Row > 1 Then '2行目以降の場合
        'セルが表示されていたらコンボボックスに追加する
        ReDim Preserve SyohinName(rc)
        ComboBox1.AddItem rg.Value 'コンボボックスに商品コードを追加
        SyohinName(rc) = rg.Offset(0, 1) '商品コードを記憶
        rc = rc + 1
      End If
    End If
  Next
End Sub

'コンボボックスをクリックした時の処理
Private Sub ComboBox1_Click()
  TextBox1 = SyohinName(ComboBox1.ListIndex)
End Sub
補足コメント
mino3

お礼率 26% (4/15)

教えください!!ユーザフォームにコードを貼り付けてステップ実行した時に、以下の場所でエラーが発生しました。どうしたらよろしいでしょうか?ボタンは、OK・ヘルプしかなく、ヘルプをクリックしてもヘルプが表示されません・・・・

ComboBox1.Clearの次のステップへ行く時に、
⇒ "実行時エラー '-2147467259(80004005)':予期せぬエラーが発生しました。"
投稿日時 - 2001-09-26 09:33:50

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

Excelのヴァージョンを教えて下さい。当方、Excel2000です。 また、   For Each rg In ws.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible) を   For Each rg In ws.Range("A1:A100") としたら次へ行きますか。
Excelのヴァージョンを教えて下さい。当方、Excel2000です。

また、
  For Each rg In ws.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)

  For Each rg In ws.Range("A1:A100")
としたら次へ行きますか。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ