『リストボックス』(みや) 単位を選ぶリストを表につけたいと思い過去検索したのですが、複雑なものが多いようでなかなか見当たりませんでしたので、質問します。 セルに”単位を選択”と表示させておき、その横に▼をつけておきます。 ▼を押すと、リストで、”単位:千円””単位:万円”と選択できるようにしたいのです。ここで選んだ単位は次のシートにある表の単位としても自動表示されるように次のシートに設定します。 「データ」-「入力規則」から設定するやり方ですと、リストを予めどこかへ入力しておく必要があるので、使えないと思いました。また、セルに”単位を選択”と表示しておくことも出来ないかと思いました。 よろしくご指導ください。 ---- フォームのコンボボックスとかでも候補はどっかに書いておかなきゃいけないんです 専用の別シートにまとめるか  はじっこのほうに入力して列とか行を非表示にするか、フォントの色を白にするか 自分はそんなかんじでやってます 諸作業に必要なものはけっこうでてくるので 別シートにまとめることをお勧めします (ききる) ---- データ>入力規則のリストは、元の値にデータをカンマ「,」で区切って入力すれば、 別にリストを入力しておかなくても大丈夫ですよ。 (シート上にリストを作っておけば、後々メンテが楽だなぁと思ってはいますが。) >セルに”単位を選択”と表示 こちらのほうは、リストの元の値の先頭にでも入れておいて、選択して表示させておくか、 あるいは、セルに最初に 単位を選択 と入力してから入力規則を設定しておくとか。 どちらにしてもリストから別のデータを選択した段階で、消えちゃいますが。 ヒナ形ブックとして作っておくならいいのかもしれません〜 データをクリアしたら、 単位を選択 と再表示されるように。。。というのなら、 マクロになると思います。 (かなれっと) ---- かなれっとさん。 そのマクロのやり方を教えていただけないでしょうか? (みや) ---- データクリアをいちいちするんなら、あんまり意味のないマクロだと思うんですが。 また、マクロになると思います、と書いたのは、データをクリアしたら何かが入力される、 という動作は、マクロじゃなければできません、というお知らせの意味でして。。。 当方の腕前は貧弱なので、以下をもってご勘弁ください><; Private Sub Worksheet_Change(ByVal Target As Range) If Range("D2").Value <> "" Then Exit Sub Range("D2").Value = "単位を選択" End Sub シートタブを右クリックし、コードを表示、出てきたウィンドウ右側の白いところに 上記をコピペ。ウィンドウを×ボタンで閉じます。 なお、上記では、適当にD2セルとしてますが、実情に合わせて変更してください。 D2に何も入力されていなければ、単位を選択と表示されます〜 (かなれっと) ---- かなれっとさ〜ん、Application.EnableEvents は要りませんか〜? (ROUGE) ---- D2の値を"単位を選択"に変更した段階で、もいっかいイベントが走ろうとするから止めましょう〜 無駄な動きはさせない、、という理解で合ってます? Private Sub Worksheet_Change(ByVal Target As Range) If Range("D2").Value <> "" Then Exit Sub Application.EnableEvents = False Range("D2").Value = "単位を選択" Application.EnableEvents = True End Sub データが入ればExitで抜けるからいっか〜 ていうアバウトなのではまずかったでしたか〜^^; (かなれっと) ---- あのう、なぜでしょうか? ”単位を選択”と表示されないのですが・・・? 入力規則で、リストボックスを作り、データを元の値にカンマで区切って入力し、上記コードをコピペしました。 リストは表示されますが、デリートしたとき”単位を選択”と表示されるはずですよね?それが、空白のままなんです。 (みや) ---- なぜでしょう^^; こちらでは結果が出てるのですが〜… マクロセキュリティが高以上になっているとか…? と新規ブックのセキュリティを変えて 上記コピペしてみましたが、保存して開きなおさない限りはできるようですねぇ う〜ん。 あと考えられるとすれば、デリート、というのはデリートキーでデータを消してるんですよね? スペースキーで空白をいれている…としても入力規則の設定でスペースをリストに入れてなければならないし… もう一度、単純に新規ブックを用意して、Sheet1のシートタブを右クリック。 でてきたメニューからコードの表示を選択。 開いたウィンドウ、右側の白い大きな場所に上記のPrivate SubからEnd Subまでをコピペ。 ウィンドウ閉じる。として、A1セルにでも1と入力してEnter。 D2セルに単位を選択と出ませんか?              (かなれっと) ---- DeleteしてからExitしていますか? もしかして、何らかの理由でApplication.EnableEventsがFalseのままで 終わっていませんか? (seiya) ---- すいませんでした! 何か入力しないと駄目なんですよね。何も入力しないで、あれ??って思ってました。 他のセルに入力したら、無事出来ました。 他のセルに入力しなくても表示されている方法はありますか? (みや) ---- 衝突〜☆ 衝突前に書いてたのが↓です。 泥縄式ですね…ワタシTT D2セルのデータがクリアされたときに表示させる、んだったらこんな感じのほうがいいのかな… Private Sub Worksheet_Change(ByVal Target As Range) If Range("D2").Value = Clear Then Range("D2").Value = "単位を選択" End Sub 以降衝突後つけたし。 で、他のセルに入力しなくても〜 といっても、リストから何か選択して、そのデータを クリアすれば表示されて、以後そのセルにはリストから選択した値か"単位を選択"しか 表示されませんけど…それじゃダメなんですか〜? なんでしたら、最初に提案しましたが、まず単位を選択と入力してから入力規則を設定 しておいてはいかがでしょう? (かなれっと) ---- かなれっとさんの言うとおりでした。 あんまり意味のないものを求めていたようです。 有難うございました。 (みや)