アプリ版:「スタンプのみでお礼する」機能のリリースについて

こちらの方法で、エクセルの数字を文字に置き換えています。
(1と入力したらりんご、2と入力したらみかん など)
https://oshiete.goo.ne.jp/qa/8514181.html

これを、複数行いたい場合、どのように入力すればよいのでしょうか?
例:
A~C は 1=りんご 2=みかん
E~H は 1=あか 2=あお など…

A 回答 (4件)

今後、対象列が追加される場合を考慮して汎用性を持たせてみました。


変数listに、対象列を変換候補を追加していって下さい。


Private Sub Worksheet_Change(ByVal Target As Range)
  Dim list As Variant
  Dim area As Variant
  Dim flag As Boolean
  
  ' 対象列を追加する場合はここに追加する
  list = Array( _
      Array("A:C", "りんご", "みかん"), _
      Array("E:H", "あか", "あお", "きいろ"), _
      Array("I", "やま", "うみ") _
    )
  
  flag = True
  For Each area In list
    If Not Application.Intersect(Target, Me.Columns(CStr(area(0)))) Is Nothing Then
      flag = False
      Exit For
    End If
  Next
  If flag Then Exit Sub
  
  If IsNumeric(Target.Value) Then
    If CLng(Target.Value) > 0 And CInt(Target.Value) <= UBound(area) Then
      Target.Value = area(Target.Value)
    End If
  End If

End Sub
    • good
    • 0
この回答へのお礼

応用も聞いて助かりました!ありがとうございました

お礼日時:2018/08/18 03:08

》 A~C は 1=りんご 2=みかん


》 E~H は 1=あか  2=あお

添付図参照
A~C の書式を、
[=1]"りんご";[=2]"みかん";""
に、
E~H の書式を、
[=1]"あか";[=2]"あお";""
に、
それぞれ設定しているだけ。此れじゃダメ?
「エクセルで数字を言葉にする 複数バージョ」の回答画像4
    • good
    • 1
この回答へのお礼

条件付き書式を使ったのでしょうか?

お礼日時:2018/08/18 03:06

実際のデータ量(変換の組み合わせ数)によるかなと、思いますよ

    • good
    • 1

こんばんは!



Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("A:C,E:H")) Is Nothing Or Target.Count > 1 Then Exit Sub
  With Target
   If .Column <= 3 Then
    Select Case .Value
     Case 1
      .Value = "りんご"
     Case 2
      .Value = "みかん"
    End Select
   Else
    Select Case .Value
     Case 1
      .Value = "あか"
     Case 2
      .Value = "あお"
    End Select
   End If
  End With
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!