No.7ベストアンサー
- 回答日時:
値を利用することで考えていました。
リストボックスは選んだ表示だけで良くて、
あとはB列のリストボックスの変更に合わせて
リストボックスの項目が変われば良いということですね。
すると、一例としてはこんな感じでしょうか?
セルB2かセルB3の値変更があった場合、
セルの内容(例では魚屋、果物屋、八百屋)に応じて、
リストボックスの内容を変更するマクロです。
設定は下記の通りとしています。
・セルB2、B3はセルE7~E9のリスト選択
・セルB2またはB3の内容に合わせてセルE14~セルG16の
データをリストに表示する
・2行目にあるリストボックスを“ListBox1”
3行目にあるリストボックスを“ListBox2”としています。
・リストボックスのListFillRangeは空白にしておく。
以下をVBAで操作を行うシートに貼りつけてみてください。
Excel2002ですが、セルB2を変更すると、リストボックス1の表示内容が
セルB3を変更すると、リストボックス2の表示内容が変わります。
たた、表示内容が変わったときは何も選択していない状態になります。
シートの値を参照していますが、VBA内での記載でもできると思います。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyRng As Range, isect As Range, i As Long
'セル変更箇所の確認
Set isect = Application.Intersect(Target, Range("B2:B3"))
If isect Is Nothing Then
Exit Sub
End If
'リストボックスの範囲設定
Select Case Target.Value
Case "魚屋"
Set MyRng = ActiveSheet.Range("F14:F16")
Case "八百屋"
Set MyRng = ActiveSheet.Range("E14:E16")
Case "果物屋"
Set MyRng = ActiveSheet.Range("G14:G16")
End Select
'リストボックスの設定
If isect.Address = Range("B2").Address Then
ListBox1.List = MyRng.Value
ElseIf isect.Address = Range("B3").Address Then
ListBox2.List = MyRng.Value
End If
End Sub
いろいろと考えて頂きありがとうございます。
今回は、B列の項目により、入力させたいセルの色を変えて、
チェックボックスにチェックを入れるような形で、勧めようと
思います。
使用者から使いづらいという声があったら、改修をかけようと思いますので、
その際、またこちらでお世話になりましたら、よろしくお願いいたします。
No.5
- 回答日時:
こんにちわぁ
入力規制では複数選択ができないので、別の方法を。
ちなみに、動作確認はExcel 2002です。
ツールバーの「コントロールツールボックス」から
リストボックスを押してください。シートにリストボックスが
表示されます。
もし「コントロールツールボックス」がわからなければ、
ツールバー付近で右クリックを押すと「コントロールツールボックス」を
表示させることができます。
「コントロールツールボックス」の「デザインモード」をクリックし、
リストボックスを右クリックすると「プロパティ」という項目が
見つかりますので、これを選んでください。
なお、リストボックスの大きさ等、変更を行う場合は
デザインモードにする必要があります。
プロパティの中に
「ListFillRange」という項目を探してここに、リストボックスに表示したい
文字が入力されているセルを記載してください
例:A1:A8
複数選択への対応はプロパティの中に
「MultiSelect」という項目を探して、
「1-fmMultiSelectmulti」か「2-fmMultiSelectExtended」
に設定してください。
1と2の違いは、1はシングルクリックで選択・キャンセルを行い、
2は複数選択をする場合はshiftキーかctrlキーを使います。
複数選択をした場合はプロパティのLinkedCellで値を返すことができません。
ですので、VBAになります。
先ほどの手順でプロパティの代わりに「コードの表示」を選択します。
そして以下のコードに書き換えてみてください。
Private Sub ListBox1_Change()
Dim i As Long, j As Long
Const trg As String = "D1" '選択値を書き込む最初のセルアドレス
With ListBox1
ActiveSheet.Range(trg).Resize(.ListCount).ClearContents
For i = 0 To .ListCount - 1
If .Selected(i) Then
ActiveSheet.Range(trg).Offset(j, 0).Value = .List(i)
j = j + 1
End If
Next i
End With
End Sub
必要な変更箇所は
ListBox1_Click() → ListBox_Change()
D1から書き始めることにしていますので、必要に応じて変更
リストボックスの個数分は値をクリアしますので
必要な分だけ、書き出す範囲を確保してください。
アクティブシートでの作業として書いていますので、
違うシートに記載するのであれば、変更が必要です。
おまけですが、リストボックスで選択をチェックボックス形式にしたい場合は
プロパティの「ListStyle」を「1-fmListStyleoption」に変更してみてください。
この回答への補足
こんにちは。ご回答いただきありがとうございます。
教えていただいたものですと、結果的にはセルを複数使ってしまうので、
私のやりたいことにはつながりませんでした。
また、B列の選択しにより、C列のリストボックスの内容を変化させたいのです。
以上、よろしくお願いいたします。。
No.4
- 回答日時:
>各店舗最大で8こ選ぶことができるようにしたいです。
>セルの行数を各店1行でなんとかしたいのですが
これについて、もっと詳しい説明が必要です
選んだ後、8個商品をどうするのか?..
選んだ結果のイメージを示してください
この回答への補足
ご回答いただきありがとうございます。
実際使用する項目は商品名ではありません。
わかりやすくするために、上げておりました。
内容としては、依頼者に商品最大8個を選んだのち、
それを元に別の管理ツールに入力するためのメモみたいなものです。
依頼者が依頼してくる数は、店名や商品名の組み合わせにより、
10~20個ほどの量となるため、なるべく一行で収めたかったのです。
この説明でわかるでしょうか。
選んだ結果のイメージとしては、「選べていればいい」という状態になります。
そこからデータを加工して何かをするわけではありません。
よろしくお願いいたします。
No.3
- 回答日時:
こんにちは!
B列の入力規則でリストはちゃんと表示出来ているとしての方法です。
当方使用のEXCEL2003の場合ですが、
まず、「八百屋」のリスト候補にしたい品目(りんご・ばなな・もも・・・等々)を範囲指定
→ メニュー → 挿入 → 名前 → 名前定義 で「八百屋」と名前定義します。
同様に「さかなや」のリスト候補にしたいものを範囲指定 → 「さかなや」 と名前定義
他にも業種がある場合は同様にすべて名前定義しておきます。
(範囲指定した後に、名前ボックスに直接入力しても構いません)
そして、C列のリスト表示させたいセル(C2以降)を範囲指定し、
メニュー → データ → 入力規則 → リスト から
「元の値」の欄に
=INDIRECT(B2) として完了です。
これでB列でリスト表示させたものがC列のリスト表示の候補になります。
以上、長々と書きましたが、参考になれば幸いです。m(__)m
この回答への補足
ご回答いただきありがとうございます。
上記方法では、1つしか選択することができず、
複数選択させるとなると、行を大幅に使ってしまいます。
1行で複数個を選択したいのです。
よろしくお願いいたします。
No.2
- 回答日時:
も少し補足が必要でしょう。
例えば
各店に対して選択できる商品の最大数はいくつでしょうか。
これにより、各店のセルの高さが変ってきますが、それは考慮されてますか?
八百屋では3つ選択し、さかなやでは、10選択した場合など。
もし、各店の最大商品選択数が、”同じ”なら、以下の方法もありかと。
各店とも商品選択最大数が”5つ”だとした場合
各店ごとに、5行ずつ使う
八百屋は、 2~6行
さかなやは、7~11行
以下同様
こうすると、商品のセルは、
B2~B6
B7~B11
となるので、
それぞれに、入力規則を設定すると
各店ごとに、5つの商品を選択できることになる
以上です。
この回答への補足
回答いただきありがとうございます。
各店舗最大で8こ選ぶことができるようにしたいです。
イメージは3つしかないですが…
セルの行数を各店1行でなんとかしたいのですが、方法がないのかとおもい、
投稿しました。
よろしくお願いいたします。
No.1
- 回答日時:
過去に同じ質問が何度も有ります
参考
http://officetanaka.net/excel/function/tips/tips …
このサイトの中ほどに有る、「[元の値]を動的に変化させる」という項目にも詳しく解説されています
この回答への補足
回答いただきありがとうございます。
この方法では、プルダウンの中から1つしか選ぶことができません。
C列で出てきた選択肢を複数選択できるようにしたいのです。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのテーブル上のセルの保護...
-
EXCEL 連動したドロップダウン...
-
名簿の漢字名を関数で半角カナ...
-
【エクセル】入力規則のプルダ...
-
EXCELで縦の行全てに一括して文...
-
エクセルで休日の「休」という...
-
Excelでセルを次の行の先頭の列...
-
Excelで相対度数を求めたいので...
-
エクセルでエンターを押すと隣...
-
EXCELのNOW()関数の...
-
エクセルのオートフィル機能で...
-
飛んでいるセル値の平均値の求め方
-
エクセルの表計算の折り返し
-
エクセル・真ん中の数字のみイ...
-
オートフィルを列すべて(一番...
-
Excel入力規則とVLOOKUPの組み...
-
エクセルで既存数値を税抜きに...
-
文字列を含む連続データの入力
-
エクセルで決められた合計にな...
-
指定した行に飛ぶ事って可能で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
名簿の漢字名を関数で半角カナ...
-
EXCEL 連動したドロップダウン...
-
Excelのテーブル上のセルの保護...
-
エクセルでエンターを押すと隣...
-
【エクセル】入力規則のプルダ...
-
Excelで相対度数を求めたいので...
-
エクセルで休日の「休」という...
-
Excelでセルを次の行の先頭の列...
-
EXCELで縦の行全てに一括して文...
-
エクセルで空白に自動で文字を...
-
エクセルで行の一番上にセルに...
-
オートフィルを列すべて(一番...
-
空白部分に連番の数字を記入し...
-
Excelで数値をgからkgへ(÷1000)
-
エクセルで決められた合計にな...
-
エクセルで、複数の同一内容の...
-
指定した行に飛ぶ事って可能で...
-
エクセルのオートフィル機能で...
-
A1 B1 A2 B2 A3 B3 の順に入力...
-
エクセルの数式を等間隔にオー...
おすすめ情報