[[20110905181008]] 『IF関数とドロップダウンリストを併用したい』(オタフク) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『IF関数とドロップダウンリストを併用したい』(オタフク)

 いつも参考にさせていただいております。

 IF関数とドロップダウンリストを併用して、下記の入力が可能かご教示下さい。
 下記の入力が出来るのであれば、別の方法でも全く構いません。

 具体的には・・・
 A1>0ならA2=A1とする。
 A1=0ならA2の値はドロップダウンリストから選択する。

 エクセルのバージョン:Excel2003
 OS:Windows XP です。

 どうぞ、よろしくお願いいたします。

 ドロップダウンとは入力規則のリストであると推測します。
基本的にドロップダウンから選択するとして、
A1が0より大きければA1の値しか選択できない、という方法は考えられます。
A1=0のときのリストが「list」という名前つきセル範囲であるとします。
A2で入力規則をリストに設定し、「元の値」に次の式を入力。
=IF(A1>0,A1,list)
A1が0より大きいときはA1だけが、それ以外はlistの範囲の選択肢が
ドロップダウンリストに表示されます。
(みやほりん)(-_∂)b


 みやほりん様

 ご教示いただきありがとうございます。
 教えていただいた式で入力できました!

 もし可能であれば、A>0の場合にドロップダウンリストに表示させるのではなく
 ダイレクトに値を入力させたいです。(選択することなく値が表示される)
 これは可能でしょうか?

 度々で恐縮ですが、ご教示いただけると大変ありがたいです。
 よろしくお願いいたします。

 (オタフク)

 考えても見てください。
A2にIF関数を入力しておいたとします。
で、A1=0のときはリストから選択した値が入力されます。
                     ^^^^^^^^^^^^
IF関数がリストから選択した値と置き換わってしまうので、
IF関数を入力しておく意味はかなり薄れます。
関数は入力した場所に存在し続けるから便利だと思ってますので。
 
御質問の仕様を満たすには
「セルA1の値が0以外に変更されたらA2の値をA1と同値にする」というマクロ
 
 Private Sub Worksheet_Change(ByVal Target As Range)
     If Intersect(Target(1), Range("A1")) Is Nothing Then Exit Sub
     Application.EnableEvents = False
     If Target(1).Value > 0 Then
         Range("A2").Value = Target(1).Value
     Else
         Range("A2").Value = "リスト選択"
     End If
     Application.EnableEvents = True
 End Sub
 
(みやほりん)(-_∂)b

 みやほりん様

 再度、ご教示いただきありがとうございます!
 おしゃるとおり、関数を入力する意味がなくなってしまいますね・・・
 勉強不足で申し訳ありません。
 今回は、教えていただいたマクロで入力しようと思います。
 ありがとうございました。

 (オタフク)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.