/* アクセス解析(Google Analytics 等)の Javascript は、?> 以降に書いてください。 (Javascript of Access analysis (Google Analytics etc.), please write them after the below ?>. ) */ ?>

2日目 逆さ言葉にしよう【30日間1日1本マクロ生活】




逆さ言葉

30日間1日1本マクロ生活、2日目です。

マクロを書く準備は、0日目に記事を書きました。

今日のネタも、文字列の操作。

子どもが大好き、逆さ言葉です。

自分の名前は逆さに言える

みなさん、自分の名前って逆さに言えるじゃないですか。

言えたところで何の自慢にもなりませんけど、言えるじゃないですか。

小学生なんか、それはそれは誇らしげに自分の名前を逆さに読んで連呼するじゃないですか。

そんな逆さ読みをサポートするマクロです。

A列に入っているこのデータを、B列に逆さまにして出力したいんです。

さっそくコードを


Sub 逆さ言葉()
    a = Selection.Value
    x = Selection.Column
    y = Selection.Row
    l = Len(a)
    
    For n = 1 To l
        ans = ans & Mid(a, l - n + 1, 1)
    Next n
    
    Cells(y, x + 1) = ans
    
End Sub

では、解説します。

2~4行目

「a = Selection.Value」の「.Value」。「.」は「の」でした。

「Value」は「値」。つまり、選択しているセルに入っている値です。

セルに書かれている内容をaという変数に入れます。

「x = Selection.Column」と「y = Selection.Row」は1日目と同じですね。

「l = Len(a)」ですが、「Len」というのはカッコの中の値の文字数を調べる関数です。

変数aに「ふるいけや」が入っていれば、Len(a)は5です。

「わたしの日常に価値はありますか」だったら、Len(a)は15です。

For ~ Next


    For n = 1 To l
        ans = ans & Mid(a, l - n + 1, 1)
    Next n

1日目にやったように、「For ~ Next」はループです。

変数 n に1から1つずつ数字を増やしたものを入れていって、lになるまで続けなさい、という命令です。

「Mid」は1日目にやりましたね。「l-n+1」で後ろからn番目を表すことができます。

実行結果

逆さ言葉にしたい文字列を含むセルにカーソルを合わせ、マクロを記述するウィンドウの「Sub」と「End Sub」の間にカーソルを置いて、画面上方の再生ボタン的なアイコン(右向きの三角形)をクリックするか、[F5]キーを押します。

はい、このように逆さ言葉の完成です。

これが何の役に立つのかって?

それは使う人次第でしょう。

Excelは便利

悔しいですが、Excelは便利です。

Microsoftにお金を払うのは癪でしょうがないんですが、Excelばかりは仕方がない。

マクロを書くようになると、Excelからは離れられないですね。

30日間、頑張ります。