[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『入力規則でこんなことできませんか?』(よろしくです)
よろしくお願い致します。 例えば、A1セルに「●」と入力されていたればB1セルへ「みかん」とはじめに表示させておきたいのですが、 B1セルは「みかん」と表示されていても修正する場合があるため入力規則のリストで選択も直接入力もできるようにしたいと思っています。 (なぜはじめに「みかん」と表示させておきたいかというと、「みかん」が一番入力する頻度が多いからです。) そうなるとIF関数などで「みかん」と表示させても修正したら数式が消えてしまうので、セル内へ数式を入れないで、 なんとかならないかなと思い質問させていただきます。 マクロで消えた数式を再度入れるようなことも考えたのですが、できればマクロは使用せずに入力規則等で行えたらうれしいです。 また、それ以外にもいい案がありましたら、教えて下さい。よろしくお願い致します。
同じ"●"で…みかん・りんご・レモン?とかあるのですか?
いい案か分かりませんが(^^ゞ 表がどんな表か分かれば数式でなんとかなるかも
知れませんよ★良かったらどんな表になってるのか教えて下さい♪
(MJ12)
>A1セルに「●」と入力されていたればB1セルへ「みかん」とはじめに表示させておきたい
(1) B1=IF(A1="●","みかん","") と入力しておく。
>B1セルは「みかん」と表示されていても修正する場合があるため入力規則のリストで選択も
(2) 入力規則でリスト選択の設定をする。(この方法はお分かりのようですね)
>直接入力もできるようにしたい
(3)入力規則でリスト選択の設定をする際に、エラーメッセージのタブで、 「無効なメッセージが入力されたらエラーメッセージを表示する」のチェックをはずす。
以上で、概ねそのような動作になりますが、 一度リスト選択、または直接入力した後に●を消しても表示は変わりません。 また、同様に、再度●を入力しても、自動で「みかん」にはなりません。 (数式がなくなりますから当然ですね)
これらを解決するにはマクロによるしかないと思います。 (天地人)
マクロ案です。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Cells(Target.Row, 1) = "●" Then
With Cells(Target.Row, 2) With .Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="みかん,りんご,レモン" End With .Value = "みかん" End With
ElseIf Target.Column = 1 Then
With Cells(Target.Row, 2).Validation .Delete .Add Type:=xlValidateInputOnly End With
End If
End Sub
シート名タブを右クリック、「コードの表示」から右側の大きな空白部分に 上記コードを貼り付けて、右上「×」で閉じます。
A列に「●」が入るとその行のB列に入力規則が設定され、「みかん」と入力されます。 (入力規則は「みかん」「りんご」「レモン」がリスト表示されるようにしてあります) また、A列が「●」以外になるとB列の入力規則は解除されます。 ご参考になれば。。
(Yujin)
●を入れた隣の列に「みかん」が入っている【様に見える】だけで良いなら B1セルに数式を入れて、B列の幅を狭くする。 C1セルに入力規則を設定。
C1セルで文字が選択されていない時は、 B1セルの文字がC1セルの上にはみ出して見えます。
こういうのを一ヶ所で済ませようとするから 問題が起きている様に思えます。
C1セルに入力規則を設定しておいて B1セルには =IF(A1="●",IF(C1="","みかん",C1),"") の式を入力して、「みかん」以外にしたいときは C1セルで選択をする事に出来ると この様な問題は起きないのではないのでしょうか。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.