• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2007でまた質問です)

Excel2007のマクロでデータを置き換える方法

このQ&Aのポイント
  • Excel2007のマクロを使用して、セルに入っているデータを特定の記号に変換する方法を教えてください。
  • セルM29からS29までに3つずつデータが入っており、それぞれのデータに応じて異なる記号に変換したいです。
  • 具体的な変換内容は、M29アイウをM30にA、N29アウイをN30にB、O29イウアをO30にC、P29アイウをP30にA、Q29イアウをQ30にD、R29ウアイをR30にE、S29ウイアをS30にFとしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (780/1631)
回答No.5

マクロは、既に上がっているので必要ないと思いました。 同じやり方を載せてもも仕方が無いので、違うやり方を載せます。 但し、watabe007 さんのやり方の方が優れてます。 ' Option Explicit ' Sub Macro1() '   Dim Col As Integer   Dim Cell As Variant '   For Col = 13 To [M29].End(xlToRight).Column     Cell = "," & Cells(29, Col) & ","     Cell = InStr("  ,アイウ,アウイ,イウア,イアウ,ウアイ,ウイア,", Cell) \ 4     Cells(30, Col) = Mid(" ABCDEF", Cell + 1, 1)   Next Col End Sub 私ならこの程度にマクロは使いません。 関数だとあまりに複雑になるため、関数でできてもマクロを使った方が良いという事もあります。 マクロの学習のためにあえてマクロを使うのもいいですが、関数でも可能ということは頭に入れておいた方が良いです。

961awaawa
質問者

お礼

できました。ありがとうございました。

その他の回答 (4)

  • SI299792
  • ベストアンサー率47% (780/1631)
回答No.4

=IF(M29="","",MID("ABCDEF",FIND(","&M29&",",",アイウ,アウイ,イウア,イアウ,ウアイ,ウイア,")/4+0.75,1)) という関数でもできます。

961awaawa
質問者

お礼

待ってました!ありがとうございます。マクロの場合はどうなりますか?

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

マクロで行うのなら Sub Test()   Dim c As Range, myArr1 As Variant, myArr2 As Variant, n As Variant   myArr1 = Array("アイウ", "アウイ", "イウア", "イアウ", "ウアイ", "ウイア")   myArr2 = Array("A", "B", "C", "D", "E", "F")   For Each c In Range("M29:S29")     n = Application.Match(c.Value, myArr1, 0)     If Not IsError(n) Then c.Offset(1).Value = myArr2(n - 1)   Next End Sub

961awaawa
質問者

お礼

ありがとうございました。ちょっと勉強しながら試してみます。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.2

別な場所にデータと記号の対応表を作って、30行目のセルにVLOOKUP関数を使って記号を表示します。 添付の図の例では対応表をO21:P26に作成し、M30には以下の式を入れました。 =VLOOKUP(M29,$O$21:$P$26,2,FALSE)

961awaawa
質問者

お礼

多種多様な解答があるんですね。ありがとうございました。試してみます。

  • kanti42
  • ベストアンサー率26% (8/30)
回答No.1

LOOKUP関数の使用でどうでしょう? 画像参照願います。 条件を別セルに LOOKUPで検索し条件別書き込み セル関数はfx欄参照願います

961awaawa
質問者

お礼

色々勉強してみます。ありがとうございました。

関連するQ&A

専門家に質問してみよう