• ベストアンサー
※ 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
  • ベストアンサー率48% (720/1491)
回答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
  • ベストアンサー率48% (720/1491)
回答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

  • Excel2007のマクロで文字列を分解

    Excel2007のマクロで文字列を分解したいのですがうまくいきません。 1、セルM29からAG29までかそれ以上にデータが3つずつ入ってます。 2、1のデータの1つずつをを3列ずつに分解してM31から列上にコピー。 例えば、セルM29あいう、セルN29えおか、…、→ならM31あ、N31い、O31う、P31え、Q31お、R31か、…。 という具合に。お願いいたします 画像を添付する

  • Excelで質問ですが何処が間違ってますか?

    Excel2007のマクロで置き換えと言うか代入という表現が正しいのかは不明なんですが、次のことがしたいです。 1、セルK29からZ29までかそれ以上のセルの1つずつにデータが4つずつ入ってます。 2、それらのデータを、入ってる形によって別な記号に変えてK30からZ30までかそれ以上に入れたいです。 K29アイウエ→K30にA L29アイエウ→L30にB M29アウイエ→M30にC N29アイウエ→N30にA O29アウエイ→O30にD P29アエイウ→P30にE Q29イアウエ→Q30にF R29イアエウ→R30にG S29イウアエ→S30にH T29イウエア→T30にI U29イエアウ→U30にJ V29イエウア→V30にK W29ウアイエ→W30にL X29ウアエイ→X30にM Y29ウイアエ→Y30にN Z29ウイエア→Z30にO ……… と、この様になんですが。 で、 =IF(K29="","",MID("ABCDEFGHIJKLMNO",FIND(","&K29&",",",アイウエ,アイエウ,アウイエ,アウエイ,アエイウ,イアウエ,イアエウ,イウアエ,イウエア,イエアウ,イエウア,ウアイエ,ウアエイ,ウイアエ,ウイエア,")/4+0.75,1)) と関数でこの様に書きましたがなぜかズレていました。 何処が間違ってるか教えてください。

  • Excel2007で抜き取り?

    ア、イ、ウ、エ、オ、カ、キ、ク、ケ、コの記号のいずれかがセルA3~J3の各セルにダブルことなく適当に入ってます。L3とM3に1~10までのどれかを入れて、 (1)L3に1が入ると、A3に入った記号がO3にコピーされ (2)M3に5が入ると、A3から5番目のE3に入った記号がP3にコピーされる という仕組みにしたいです。 今は例えで3行目を使いましたが、4行目、5行目.....とできるようにしたいです。 誰かよろしくお願いいたします。

  • Excelで抽出?カウント

    VBAマクロや関数でデータの抽出とカウントをしたいんですが難しくて混乱したのでヘルプお願いします。 K29ア→K20に2 L29イ→L20に6 M29ア→M20に5 N29イ→N20に3 O29ア→O20に5 P29ア→P20に6 Q29イ→Q20に7 R29イ→R20に8 S29ア→S20に9 T29イ→T20に4 U29イ→U20に3 とありまして"ア"に関連するセルの数値を抽出して何の数値が何個あるか観れるようにしたいです。"イ"についてもそのようにしたいです。 お願いします。

  • Excel2007で複数のセルを併せて参照して

    Excel2007で複数のセルを併せて参照してデータを抽出したいんですがやり方がわかりません。ここから質問になります。 セルO4,P4,Q4から下に向かって各セルにア、イ、ウ、エ、オのいずれかが(今のところ)セルO50、P50、Q50までデータとして入ってます。マクロボタンを押すと一行ずつデータが追加されます。 B3からD5に格子を用意しました。B3:D5にデータO,P,Qの最下行から2行上までをまとめてコピペします。コピペされたそれらを併せて参照してデータO4:Q48(今のところO50:Q50が最下行なのと2行上までがコピー範囲なのでQ48としました)から探してその1つ下の3列データ(O?,P?,Q?)をG3、H3、I3、から下に向かって抽出したいです。 私的にはUnionメソッドを使ってするのかなぁと思ってます。 ご協力お願いします。

  • Excel2007で複数のセル参照してを

    Excel2007で複数のセルを参照してデータを抽出したいんですがやり方がわかりません。ここから質問になります。 セルO4,P4,Q4から下に向かって各セルにア、イ、ウ、エ、オのいずれかが(今のところ)セルO50、P50、Q50まで入ってますが追加されていきます。 B3からD5に格子を用意しました。B3:D5をまとめて参照してデータO4:Q50から探してその1つ下の3列データ(O?,P?,Q?)をG3、H3、I3、から下に向かって抽出したいです。 私的にはUnionメソッドを使ってするのかなぁと思ってます。 ご協力お願いします。

  • エクセル 文字列を分割するマクロについて

    1行目から200行目くらいまで、A列に次のようなデータが入っています。 (A1セル) A 1 A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S このデータを下記のようにカンマごとに別のセルに分割するマクロを 教えていただけないでしょうか。 A1に「A」を、S1に「S」を入れたいと思っています。  A B C ・・・ R S 1 A B C ・・・ R S

  • select insertで複数テーブルから値を取得したい

    環境:oracle9i select insertで、2つのテーブルから値を取得して、1つのテーブルにinsertすることは可能でしょうか? たとえば、以下の場合、どのようなSQL文を書けばよいか、アドバイスいただけますでしょうか。 よろしくお願いします。 insertしたいテーブル:A Aテーブルの項目:o,p,q,r,s,t 値を取得するテーブル:B,C Bテーブルの項目:o,p,q,r Cテーブルの項目:o,p,s,t oとpが主キーになっていて、それらが一致するBとCのデータを あわせて、Aにinsertしたいと思っています。 insert into A(o,p,q,r,s,t) select このあと、どのように書けばよいのかがわかりません。

  • 両辺の列ベクトルの比較

    わかりづらい書き方で、すいません。行列(一行一列 一行二列・・・,二行一列 二行二列・・・)と書きます。 A= (1 2,-1 4) 二次の正方行列Pについて、Pが逆行列P^-1を持ち、P^-1AP= (α 0 , 0 β) が成り立つときα、β の値と行列Pの例を一つ定めよ。という問題で、 解答中に、P= (p q,r s )とする。AP=P( α 0 ,0 β)に代入して、A (p q,r s)= (pα qβ,rα sβ)・・(1)よって、A (p,r) = α (p,r) A (q,s)=β (q,s)となっています。なぜの(1)の両辺の列ベクトルが比較できるのでしょうか。A (1 2, 3 4 )= (5 6,7 8) でも、A (1,3) = (5,7) と比較できるのでしょうかどなたか教えてください。

  • 答え合わせ

    実数p,q,r,sが p^2-qr=q^2-rs=r^2-sp=s^2-pq≠0 を満たすとき p+q+r+s の値を求めよ という問題の私の答えは以下の通りです.あっていますでしょうか? 実数p,q,r,sが p^2-qr=q^2-rs=r^2-sp=s^2-pq≠0 を満たすとき p,q,r,sの中に0でないものがある それをpとするように変数名を入れ替える p≠0 a=q/p b=r/p c=s/p とすると q=pa r=pb s=pc p+q+r+s=p(1+a+b+c)…(1) p^2(1-ab)=p^2(a^2-bc)=p^2(b^2-c)=p^2(c^2-a)≠0 1-ab=a^2-bc=b^2-c=c^2-a≠0…(2) 1-ab=a^2-bc bc=a^2+ab-1…(3) (2)から 1-ab=b^2-c c=b^2+ab-1…(4) ↓これを(3)のcに代入すると b(b^2+ab-1)=a^2+ab-1 a^2+ab-1=b^3+ab^2-b a^2+ab(1-b)-b^3+b-1=0 a^2=ab(b-1)+b^3-b+1…(5) (2)から c^2-a=1-ab c^2=a+1-ab ↓このcに(4)を代入すると (b^2+ab-1)^2=a+1-ab (ab+b^2-1)^2+ab-a-1=0 b^2a^2+(2b^3-b-1)a+b^4-2b^2=0 ↓これに(5)を代入すると b^2{ab(b-1)+b^3-b+1}+(2b^3-b-1)a+b^4-2b^2=0 (b-1)(b+1){(b^2+b+1)a+b^2(b+1)}=0…(6) (b^2+b+1)a+b^2(b+1)=0と仮定すると (b^2+b+1)a=-b^2(b+1)…(7) a^2(b^2+b+1)^2=b^4(b+1)^2 ↓このa^2に(5)を代入すると {ab(b-1)+b^3-b+1}(b^2+b+1)^2=b^4(b+1)^2 b(b-1)a(b^2+b+1)^2+(b^3-b+1)(b^2+b+1)^2=b^4(b+1)^2 ↓このa(b^2+b+1)に(7)を代入すると -b^3(b+1)(b-1)(b^2+b+1)+(b^3-b+1)(b^2+b+1)^2=b^4(b+1)^2 (b^3-b+1)(b^2+b+1)^2=b^3(b+1)(b^3+b^2+b-1) b^4+b^3+b^2+b+1=0 となる実数bは存在しないから (b^2+b+1)a+b^2(b+1)≠0だから(6)から ∴ b=±1 b=1の時(5)から a^2=1 a=±1 a=1と仮定すると 1-ab=0 となって1-ab≠0(2)に矛盾するから a=-1 ↓これとb=1を(4)に代入すると c=-1 ↓これとb=1,a=-1を(1)に代入すると p+q+r+s=p(1+a+b+c)=p(1-1+1-1)=0 ∴ p+q+r+s=0 b=-1の時 ↓これを(4)のbに代入すると c=-a ↓これとb=-1を(1)のc,bに代入すると p+q+r+s=p(1+a+b+c)=p(1+a-1-a)=0 ∴ p+q+r+s=0

専門家に質問してみよう