エクセル初心者なもので、教えていただきたいと思います。
次のような表示をしたい場合の関数、もしくは設定方法をご存知方いらっしゃいましたらお願いします。
前提
・セルA1は「yes」「no」を選択する
・セルB1は数量を入力する
・セルC1は「a」「b」「c」のうち一つを選択する
質問1
セルA1で「no」を選択した場合、セルB1に数量を入力すると「-(マイナス)」の符号がつくようにしたい。
数量は入力時に自身で「-」をつけて入力した場合もつけずに入力した場合も、符号がつくようにしたい。
例
・セルA1で「yes」を選択→セルB1に「10」を入力→セルB1「10」と表示
・セルA1で「no」を選択→セルB1に「10」を入力→セルB1「-10」と表示
・セルA1で「no」を選択→セルB1に「-10」を入力→セルB1に「-10」と表示
質問2
セルA1で選択した結果により、セルC1で選択できる項目を制限したい。
例
セルA1で「yes」を選択→セルC1で「a」「b」が選択肢としてタブ(?)に表示される
セルB1で「no」を選択→セルC1で「b」「c」が選択肢としてタブに表示される
稚拙な文章で申し訳ございません。
エクセルに詳しい方いらっしゃいましたら、お力添えいただければと思います。
よろしくお願いします。
No.1
- 回答日時:
こんばんは!
>A1セルが「yes」の場合、B1セルの数値がマイナスでも手を付けなくてよいのですね?
(A1セルが「no」の場合のみB1セルをマイナスにする)
VBAになりますが一例です。
尚、A1セルは入力規則のリスト設定がしてあり、「yes」または「no」のどちらかが選択できる状態だとします。
C1セルは手を付けなくて大丈夫です。
シートモジュールにしてください。
Private Sub Worksheet_Change(ByVal Target As Range) 'この行から//
If Intersect(Target, Range("A1:B1")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Column = 1 Then '←A1セルの場合//
.Offset(, 2).ClearContents
If .Value = "no" Then
If .Offset(, 1) <> "" Then
.Offset(, 1) = Abs(.Offset(, 1)) * -1
End If
End If
If .Value = "yes" Then
With .Offset(, 2).Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="a,b"
End With
Else
With .Offset(, 2).Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="b,c"
End With
End If
Else '←B1セルの場合//
If .Value <> "" Then
If IsNumeric(.Value) Then
If .Offset(, -1) = "no" Then
Application.EnableEvents = False
.Value = Abs(.Value) * -1
Application.EnableEvents = True
End If
Else
MsgBox "数値を入力してください。"
.Select
End If
End If
End If
End With
End Sub 'この行まで//
※ じっくり考えればもっと簡単になるかもしれませんが、
まずはこの程度で・・・m(_ _)m
ご教授頂きありがとうございます。
設定したところ、無事出来ました!
厚かましくも、追加でもう一点教えて頂きたいのですが、
C1で表示される選択肢が3つ以上あり(1-10)、
A1でnoを選択した場合、そのうちの1.4.5が表示される。yesの時はそれ以外。
としたい場合はどのようになりますでしょうか?
No.2ベストアンサー
- 回答日時:
No.1です。
>C1で表示される選択肢が3つ以上あり(1-10)、
>A1でnoを選択した場合、そのうちの1.4.5が表示される。yesの時はそれ以外。
>としたい場合はどのようになりますでしょうか?
前回のコードを2行だけ変更すれば大丈夫です。
どこの行とどこの行!といっても判りにくいと思いますので、
もう一度すべてのコードを載せておきます。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:B1")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Column = 1 Then '←A1セルの場合//
.Offset(, 2).ClearContents
If .Value = "no" Then
If .Offset(, 1) <> "" Then
.Offset(, 1) = Abs(.Offset(, 1)) * -1
End If
End If
If .Value = "yes" Then
With .Offset(, 2).Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="2,3,6,7,8,9,10" '★
End With
Else
With .Offset(, 2).Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="1,4,5" '★
End With
End If
Else '←B1セルの場合//
If .Value <> "" Then
If IsNumeric(.Value) Then
If .Offset(, -1) = "no" Then
Application.EnableEvents = False
.Value = Abs(.Value) * -1
Application.EnableEvents = True
End If
Else
MsgBox "数値を入力してください。"
.Select
End If
End If
End If
End With
End Sub
※ コード内の「★」の行を変更しています。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルの掛け算 3 2022/12/13 14:49
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
- Excel(エクセル) エクセルを活用して受注表を作成中ですが関数が分からなく困ってました。 1 2022/07/22 09:14
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) マクロ セルの選択 5 2022/08/12 22:47
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのチェックボックスの使い...
-
エクセルで指定したセルのどれ...
-
対象セル内(複数)が埋まった...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
エクセルのセルの枠を超えて文...
-
Excelで数式内の文字色を一部だ...
-
(Excel)数字記入セルの数値の後...
-
エクセル オートフィルタで絞...
-
複数のセルのいずれかに数字が...
-
EXCEL VBA セルに既に入...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
セルをクリック⇒そのセルに入力...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excelで住所を2つ(町名迄と番...
-
excelの特定のセルの隣のセル指...
-
枠に収まらない文字を非表示に...
-
エクセル “13ヶ月”を“1年1ヶ月...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報