文字列をさかさまに並び替える

文字の並び順を逆にする

3行マクロ 28回

文字列をさかさに並び替える~文字を逆に読む3行マクロ

文字列を逆から読むのは、難しいですね。
さかさことばにしてみる?
商品名を考えていて、なかなかいいのが出てこない。「いっそのこと逆さにしてみれば?頭の体操にもなりそうですから。」なんて同僚に言われてしまいました。
でも逆さにするのって、結構めんどうですよ。簡単にさかさことばにする方法はないのかな?。
(サンプルファイルは、こちらから 3行マクロ28回サンプルデータ
Excelバージョン:Excel20192016201320102007

文字列をさかさまに並び替えるマクロ

今回のマクロで逆さ言葉にするために使うのは、
StrReverse 関数
VBScript の関数のひとつです。書式 StrReverse(string1)
指定された文字列の文字の並び順を逆にした文字列を返します。
引数 string1 に文字の並びを逆にする文字列を指定します。
では、「ぞう君パン食うぞ」をさかさまに並び替えてみましょう。
さかさことばマクロ
StrReverse 関数を使って、マクロのコードに作ります。
引数string1にA2セルを指定します。
さかさことばマクロ2
Sub sakasakotoba()
    Range("A2").Value = StrReverse(Range("A2").Value)
End Sub

さかさことばマクロ3

先頭3文字はそのまま、残りをさかさまに並び替える

先頭3文字はそのまま、残りをさかさまに並び替える場合は、先頭3文字をLeft関数で取り出し、残りをMid関数で指定してStrReverse 関数で逆さまにします。
さかさことばマクロ2
コードは、
Sub sakasakotoba5()
    Range("B2").Value = Left(Range("A2").Value, 3) & StrReverse(Mid(Range("A2").Value, 4))
End Sub
実行すると、B2セルに先頭3文字はそのまま、残りをさかさまに並び替えた文字列が表示されました。
さかさことばマクロ2
1個ずつではなく、セル範囲を逆さまに並び替える場合は、
逆さまに並べかえる
Sub さかさことば2()
    Dim 選択セル As Range
    For Each 選択セル In Selection
    選択セル.Value = StrReverse(選択セル.Value)
    Next 選択セル
End Sub
セル範囲を選択してからマクロを実行します。
となりのB列に結果を表示するには、Offsetを利用します。
Sub さかさことば3()
    Dim 選択セル As Range
    For Each 選択セル In Selection
    選択セル.Offset(0,1).Value = StrReverse(選択セル.Value)
    Next 選択セル
End Sub
文字列をさかさまに並び替えるマクロ

今日の講義は以上です。お疲れ様でした。

こちらもおすすめ