• 締切済み

ドロップダウンで「aaa」を選択したら表示では「A」としたい。

こんにちは。 ドロップダウンリストで困っています。 入力規則から、ドロップダウンリストを作成しています。 リストの中身(元の値)はaaa,bbb,cccとしているのですが、 プルダウン中と、選択後や他のセルにカーソルが移動した時の表示を変化させたいのです。 aaaを選択→A bbbを選択→B cccを選択→C どなたか教えていただけるかたがいましたら、 よろしくお願い致します。

みんなの回答

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.6

No2です。 > VBAに関しては知識がないため、 > 私には難しそうです。 ご自身でVBAのコードを書くならそうでしょうが、 1.シートのタブを右クリックし、コードの表示を選ぶ 2.出てきたVisualBasicEditor(白い画面)に下記(No2のところで書いています)のコードをコピーして貼り付ける。 3.AltキーとF11キーをいっしょに押してワークシート画面に戻る。 わずかこれだけの作業ですよ。 食わず嫌いせずにいちどためしてみたらどうかなあと思うんですが。 ( ̄□ ̄;)!!

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

VBAを使うとうまくいくようです。 例として D1:E3に aaa 東京 bbb 大阪 ccc 京都 とします。 A列にデーター入力規則ーリストで、D1:D3を指定します。 一方Sheet1のWorksheet_Changeのイベントに(やり方は下記注参照) Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Application.EnableEvents = False Target = Application.WorksheetFunction.VLookup(Target, Range("d1:E3"), 2, False) Application.EnableEvents = True End If End Sub をコピペする。 A列にポイントすると、ドロップダウンで aaa bbb ccc が表示される。 例えば、そのうちの aaaをクリックすると東京がA列のセルにセットされる。 (注)VBEのVBAProjectの中のSheet1をクリックして出てくる画面に 上記のコードを貼り付けること。 Sheet1は本番では自分の作った質問でいうシート名をさす。 ーー もしクリックしても反応しなくなったら 標準モジュールに Sub test01() Application.EnableEvents = True End Sub を貼り付けて、実行した後に、シートに戻って、上記ドロップダウンをテストしてください。

monmonsuke
質問者

お礼

ご意見ありがとうございます。 VBAに関しては知識がないため、 私には難しそうです。 せっかく回答をいただいたのに すみませんでした。

回答No.4

#3ですが、さっそく修正です。 > 例えば B1 に、=VLOOKUP(A2,C2:D4,2,0) と入力すると、 例えば B1 に、=VLOOKUP(A1,C1:D3,2,0) と入力すると、 の誤りでした。

回答No.3

    A    B    C    D 1 (入力規則)    aaa   A 2            bbb   B 3            ccc   C このような表で、A1 に入力規則(リスト)が C1:C3 を参照して設定されていると します。 例えば B1 に、=VLOOKUP(A2,C2:D4,2,0) と入力すると、当然 A1 は aaa、 B1 は A になります。 A1に、セルサイズと同じテキストボックスをかぶせて作成し、テキストボックス の参照先を =B1 にします。 ここで、A1 と B1 の文字色を 白、テキストボックスの書式を 線なし、塗りつぶし なし、更にオブジェクトのみを対象にシートを保護します。 A1 のリストから aaa を選択すると、あたかも A1 に A と表示されたかのように はなります。

monmonsuke
質問者

お礼

ご意見ありがとうございます。 早速試してみます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

同じセル内の値を値として変化させるのは関数では無理ですが、VBAを使えば出来そうですね。ためしてみてください。 1.シートのタブを右クリックし、コードの表示 2.出てきたVisualBasicEditorに下記をコピペ 3.Alt+F11でワークシート画面に戻る Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub 'A1セル以外は作動させない Select Case Target.Value 'A1の値により対応する Case "aaa" 'aaaだったら Target.Value = "A" 'Aとする Case "bbb" Target.Value = "B" Case "ccc" Target.Value = "C" End Select End Sub '上記は、入力規則のあるセルをA1としてますが、実情に合わせアドレスや"aaa"などを書き換えて使ってください。

monmonsuke
質問者

お礼

ご意見ありがとうございます。 VBAに関しては知識がないため、 私には難しそうです。 せっかく回答をいただいたのに すみませんでした。

  • TTak
  • ベストアンサー率52% (206/389)
回答No.1

> プルダウン中と、選択後や他のセルにカーソルが移動した時の表示 すなわち、リストやセルの表示上は(表示リスト) A B C として、値を(正規リスト) aaa bbb ccc と対応させて、参照や計算を行うということでしたら、入力規制を設定しているセルは、完全に表示のみとして、その近くのセル(例えば1段下のセル)に、 =INDEX(正規リスト範囲,MATCH(入力規制セル,表示リスト範囲,)) とします。参照先はすべてこのセルにすれば、表示と値を分けて計算できます。

monmonsuke
質問者

お礼

ご意見ありがとうございます。 やはりもう1つのセルを使わなければいけないのですね。 試してみます。 ありがとうございました!

関連するQ&A