No.5ベストアンサー
- 回答日時:
おはようございます。
> If c.Value = "RES" Or c.Value = "JP" Or c.Value = "MIN" Or c.Value = "res" ・・・ Then
> と長くなってしまいましたが
そんなにたくさんあるなら、SelectCase構文に書き換えましょう。
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column <> 10 And .Column <> 4 Then Exit Sub
If .Row < 9 Then Exit Sub
x = ActiveCell.SpecialCells(xlLastCell).Row
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = fales
If .Column = 10 Then
If Selection.Count > 1 Then
Set Rng = Range(Cells(9, 10), Cells(x, 10))
Else
Set Rng = Target
End If
For Each c In Rng
Select Case c.Value
Case "S"
c.Offset(0, -4).Value = "×"
c.Offset(1, -3).Value = "×"
c.Offset(3, -1).Value = "-"
Case Else
c.Offset(0, -4).Value = ""
c.Offset(1, -3).Value = ""
c.Offset(3, -1).Value = ""
End Select
Next
Else
If Selection.Count > 1 Then
Set Rng = Range(Cells(9, 4), Cells(x, 4))
Else
Set Rng = Target
End If
For Each c In Rng
Select Case c.Value
Case "RES", "JP", "MIN", "res", "jp", "res"
c.Offset(0, 4).Value = "-"
c.Offset(0, 9).Value = "-"
Case Else
c.Offset(0, 4).Value = ""
c.Offset(0, 9).Value = ""
End Select
Next
End If
End With
Set Rng = Nothing
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
No.4
- 回答日時:
こんばんは。
ではこれでいかが?
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column <> 10 And .Column <> 4 Then Exit Sub
If .Row < 9 Then Exit Sub
x = ActiveCell.SpecialCells(xlLastCell).Row
If .Column = 10 Then
Set Rng = Range(Cells(9, 10), Cells(x, 10))
For Each c In Rng
If c.Value = "S" Then
c.Offset(0, -4).Value = "×"
c.Offset(1, -3).Value = "×"
c.Offset(3, -1).Value = "-"
Else
c.Offset(0, -4).Value = ""
c.Offset(1, -3).Value = ""
c.Offset(3, -1).Value = ""
End If
Next
Else
Set Rng = Range(Cells(9, 4), Cells(x, 4))
For Each c In Rng
If c.Value = "RES" Or c.Value = "JP" Then
c.Offset(0, 4).Value = "-"
c.Offset(0, 9).Value = "-"
Else
c.Offset(0, 4).Value = ""
c.Offset(0, 9).Value = ""
End If
Next
End If
End With
Set Rng = Nothing
End Sub
"RES"に"JP"を追加し、複数選択時もエラーが出ないようにしてみました。
merlionXX様
本当にありがとうございました。
完成しました。
条件を増やすのはOrを使えば良かったんですね。
If c.Value = "RES" Or c.Value = "JP" Or c.Value = "MIN" Or c.Value = "res" ・・・ Then
と長くなってしまいましたが、上記のようにしました。
本日ポイント発行して締め切らさせて頂きます。
No.3
- 回答日時:
If Target.Column <> 4 Then Exit Sub ということですからD列に「RES」と入力された場合の条件追加ですね?
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column <> 10 And .Column <> 4 Then Exit Sub
If .Row < 9 Then Exit Sub
If .Column = 10 Then
If .Value = "S" Then
.Offset(0, -4).Value = "×"
.Offset(1, -3).Value = "×"
.Offset(3, -1).Value = "-"
Else
.Offset(0, -4).Value = ""
.Offset(1, -3).Value = ""
.Offset(3, -1).Value = ""
End If
Else
If .Value = "RES" Then
.Offset(0, 4).Value = "-"
.Offset(0, 9).Value = "-"
Else
.Offset(0, 4).Value = ""
.Offset(0, 9).Value = ""
End If
End If
End With
End Sub
こんな感じでしょうか。
この回答への補足
すみません、
D列(もしくはJ列)に関して、セルを複数選択してDeleteすると、下記の行で、「実行時エラー"13" 型が一致しません」と言うエラーが発生します。
If .Value = "RES" Then
防げる手立てはあるでしょうか?
(1セルだけの選択Deleteは問題ありませんでした)
merlionXX様
ありがとうございました。
助かりました。
望み通りの動作となっております。
最後ですが、
If .Value = "RES" Then
上記に条件(RES以外にもJPとか)を追加する場合は、どうすれば良いでしょうか。
(これは何種類もあります)
If .Value = "RES","JP" Then
では構文エラーでした・・・
No.2
- 回答日時:
poppoyayaさん、こんにちは。
> ・・・
> みたいに行がずれていく感じです。
merlionXXです。
では、以下のように修正します。
9行目以下のJ列に入力された場合に作動するようにしました。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 10 Then Exit Sub
If Target.Row < 9 Then Exit Sub
If Target.Value = "S" Then
Target.Offset(0, -4).Value = "×"
Target.Offset(1, -3).Value = "×"
Target.Offset(3, -1).Value = "-"
Else
Target.Offset(0, -4).Value = ""
Target.Offset(1, -3).Value = ""
Target.Offset(3, -1).Value = ""
End If
End Sub
merlionXX様
大変ありがとうございました。
差し出がましいのですが、条件式を追加したい場合はどこに追加すれば宜しいでしょうか?
教えて頂きました内容に、以下の条件も追加したいのです。
特定のセルに"RES"と入力したら、指定のセルに値を表示させる。
(教えて頂いたものを流用させて頂く場合は、以下の条件式になります)
If Target.Column <> 4 Then Exit Sub
If Target.Row < 9 Then Exit Sub
If Target.Value = "RES" Then
Target.Offset(0, 4).Value = "-"
Target.Offset(0, 9).Value = "-"
Else
Target.Offset(0, 4).Value = ""
Target.Offset(0, 9).Value = ""
End If
No.1
- 回答日時:
ご要望のようなことはワークシート関数では不可能です。
セルJ9に文字列"S"が入力されたら、セルF9、セルG10に文字列"×"を表示、セルI12に文字列"-"を表示させたり、セルJ9にそれ以外の入力であればセルF9、G10、I12には何も表示させないということならIF関数でとても簡単なのですが、セルF9、G10、I12に直接入力もするのなら、その段階でせっかく作った関数は消えてしまいます。
このような場合には関数ではなくVBAの出番となります。
以下を試してみてください。
1.シートのタブを右クリックし、「コードの表示」を選択。
2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。
'*****ここから下をコピペ*****
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$J$9" Then Exit Sub
If Target.Value = "S" Then
Range("F9,G10").Value = "×"
Range("I12").Value = "-"
Else
Range("F9,G10,I12").ClearContents
End If
End Sub
'*****ここより上までをコピペ*****
3.Altキー+F11キーでワークシートへもどります。
ありがとうございました。
VBAを用いて対応しようと思います。
すみませんが、セル入力1つじゃないのですが、この場合どうすれば良いでしょうか?
セルJ9に文字列"S"が入力されたら、セルF9、セルG10に文字列"×"を表示、セルI12に文字列"-"を表示させたり、セルJ9にそれ以外の入力であればセルF9、G10、I12には何も表示させない。
で、以下
J10に~セルF10、G11~セルI13
J11に~セルF11、G11~セルI14
・・・
みたいに行がずれていく感じです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセルのことで教えてください。 A1セルに、 別シートのA1セルが1のときは「A」、2のときは「B 4 2023/02/24 23:08
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Excel(エクセル) 【関数】選択した文字列にしたがって、文字を選んで表示する 2 2023/07/13 22:44
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) エクセルの1桁目のゼロが表示されない 6 2022/09/17 09:46
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MicrosoftEdge から[メニューバ...
-
asus のミニノート のライセン...
-
windows11 コントロールパネル...
-
Windows11のデスクトップアイコ...
-
パソコンのデスクトップ画面に...
-
オンラインアプリとオフライン...
-
リモートデスクトップの容量制限
-
中古パソコンのリカバリーについて
-
Windows11で消してしまった初期...
-
DVD 追加書き込み実行(完了)方法
-
windows10について SSDをクリー...
-
添付図のPCを 22H2を23H2にする...
-
漢字変換が異常に遅いPC
-
マイクロソフトアカウントのメ...
-
WINDOWS 10 ようこそ の画面
-
【Microsoft Windows 10】マイ...
-
Windows10が起動しない_システ...
-
Windows11の質問です。
-
windows10でBluetoothが急に無...
-
Windows11でアプリの起動が遅い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10のパソコンから謎のWi...
-
パソコンの起動が遅い
-
windows10の再インストールがで...
-
パソコンから、いきなり警告音...
-
ファイルの比較について教えて...
-
windows10について SSDをクリー...
-
Windows 11 HomeからProへのア...
-
Windows10で、ほかのWindowsで...
-
突然写真とかjpegファイルがみ...
-
Windowsを更新したら、タスクバ...
-
WINDOWS 10 ようこそ の画面
-
セキュリティ更新プログラム (K...
-
Windowsでリモートデスクトップ...
-
mac10.5.8のときの天気マークが...
-
Windows11 でのファイル削除
-
Windows11 で電卓の起動が遅い
-
【Microsoft Windows 10】マイ...
-
Windows11でアプリの起動が遅い...
-
パソコン初歩的な問題
-
WinSCPをフォルダに入れる方法...
おすすめ情報