• 締切済み

エクセルで文字列の順序を逆転する方法

エクセルで A1セルに"japan"、A2セルに"america" と言う表があったとき、 B1セルに"napaj"、B2セルに"acirema" (文字列の順序を逆転する) と言ったように出力する方法はありませんか? よろしくお願いします。

みんなの回答

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.7

◆とりあえず、10文字までですが(あまり芸がない方法ですが) B1=MID($A1,10,1)&MID($A1,9,1)&MID($A1,8,1)&MID($A1,7,1)&MID($A1,6,1)&MID($A1,5,1)&MID($A1,4,1)&MID($A1,3,1)&MID($A1,2,1)&MID($A1,1,1)

すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.6

マクロが出来ない私なら次のようにします。    A      B   C  D E F G H I J K L 1 文字列   逆文字列 10 9 8 7 6 5 4 3 2 1 2 japan    napaj           n a p a j 3 america   acirema       a c i r e m a 4 thai    iaht             i a h t 5 usa     asu               a s u 6 yugoslavia aivalsoguy a i v a l s o g u y 1.A列の文字列の中で最長が 10文字とすれば、セル C1 以右に連続数値   10、9、8、…、1 を入力 2.セル C2 に式 =IF(LEN($A2)<C$1,"",MID($A2,C$1,1)) を入力して、此   れを右方にズズーッと複写 3.セル B2 に式 =C2&D2&E2&F2&G2&H2&I2&J2&K2&L2 を入力 4.範囲 B2:L2 を下方にズズーッと複写

すると、全ての回答が全文表示されます。
回答No.5

#2です。遅くなりまして。 多分以下のようにできると思います。 Sub func() Dim myStr As String Dim strmy As String Dim i As Integer For s = 1 To 200 myStr = "" If Range("A" & s).Value = "" Then Exit Sub i = Len(Range("A" & s).Value) + 1 While i > 1 i = i - 1 strmy = Mid(Range("A" & s).Value, i, 1) Select Case StrConv(strmy, vbWide) Case "゛", "゜" i = i - 1 strmy = Mid(Range("A" & s).Value, i, 2) End Select myStr = myStr & strmy Wend Range("B" & s).Value = myStr Next End Sub

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

#1です。 >VBAは扱ったことがないので・・・、 御免なさい。 マクロと同じ場所にコピーするだけですが... 使い方としては関数を選択すると「ユーザー定義関数」に表示されるようになります。 後は通常の関数と同じ使い方になります。

すると、全ての回答が全文表示されます。
noname#22222
noname#22222
回答No.3

No1さんの回答と同じですが・・・。 japan  napaj <----- =ReversText(A1) Public Function ReversText(ByVal Text As String) As String   ReversText = StrReverse(Text) End Function 標準モジュールを利用して、広域な戻り値を持つ関数を作成したらいいです。

すると、全ての回答が全文表示されます。
回答No.2

マクロなら・・・。 ただし、A1の文字列をB1に表示しているので 工夫が必要ですが・・・。 Sub func() Dim myStr As String Dim strmy As String Dim i As Integer i = Len(Range("A1").Value) + 1 While i > 1 i = i - 1 strmy = Mid(Range("A1").Value, i, 1) Select Case StrConv(strmy, vbWide) Case "゛", "゜" i = i - 1 strmy = Mid(Range("A1").Value, i, 2) End Select myStr = myStr & strmy Wend Range("B1").Value = myStr End Sub

wpinging1
質問者

補足

自分の拙いマクロに関する知識でどうにかできましたv ありがとうございます。 追加になって申し訳ないのですが、これをA1~A200で実行するにはどうすればよいのでしょうか?

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

VBAを使えばできますが... VBAにあるStrReverseという関数を使えば簡単です。 Function REVERSE(MOJI) REVERSE = StrReverse(MOJI) End Function と設定して B1=REVERSE(A1) とすれば反転してくれます。

wpinging1
質問者

お礼

VBAは扱ったことがないので・・・、 御免なさい。 あとマクロのほう巧くできたのでv ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A