Excelのマクロでオリジナルの回文を作ってみませんか?

Excelのマクロに言葉を逆順に並べてもらって回文を作りましょう

ここ数日、ネットや新聞で、いくつか回文を見かけました。
なかなか良くできた回文が多く、自分でも作ってみたいなと思いました。

回文を作る上で大変なことは、言葉を逆から並べること。
Excelのマクロなら、これを簡単にやってくれちゃいます。

これを使ってオリジナルの回文を作ってみませんか?

マクロの設定手順

マクロの設定手順を示します。
※マクロを一度も使ったことの無い方は、先ずはこちらの記事をお読みいただければと思います。

  • Excelを立ち上げます
  • 「開発」タブ → コード欄の「Visual Basic」をクリック
    ※「開発」タブが見当たらない場合は、
    「ファイル」メニュー→「オプション」→「リボンのユーザ設定」→
    「開発」のチェックボックスをチェック→「OK」で出現します
    ただし、Excelのバージョンによって異なる場合があります。
  • 左側のプロジェクト欄で、
    「VBAProject(Book1)」を右クリック→「挿入」→「ユーザーフォーム」を選択

  • コントロールボックスが表示されていなければ、
    「表示」メニュー→「ツールボックス」を選択
  • ツールボックスの左上から右に3番目の「テキストボックス」をクリック
  • UserForm1の上でドラッグして、TextBox1を作成
  • 同様に、TextBox2、TextBox3を作成
  • TextBox1をダブルクリック

  • 下に示すマクロをコピー&ペースト
  • TextBox_Changeの関数の中にカーソルを置いた状態で「F5」を押す
    (または「実行」メニュー→「Sub/ユーザーフォームの実行」を選択)

Private Sub TextBox1_Change()
    Dim i       As Integer  ' 文字の位置を管理する整数
    Dim strWork As String   ' 作業用文字列

    ' 作業用文字列をクリアする
    strWork = ""
    ' TextBox1の文字を後ろから順に連結する
    For i = Len(TextBox1.Text) To 1 Step -1
        strWork = strWork & Mid(TextBox1.Text, i, 1)
    Next i
    ' TextBox2は、TextBox1の最後の文字を重ねないで回文を作る
    TextBox2.Text = TextBox1.Text & Mid(strWork, 2)
    ' TextBox3は、TextBox1の最後の文字を重ねて回文を作る
    TextBox3.Text = TextBox1.Text & strWork
End Sub

  • extBox1の欄に文字を打ち込めば、TexbBox2の欄に、最後の文字を重ねない回文、TextBox2の欄に最後の文字を重ねた回文が現れます

回文の作成例

思いついた単語を片端から入れてみましょう。
単語を思いつかなければ、新聞、雑誌、本を開いて、そこで見つけた単語を入れてみましょう。

20分くらいで次のような回文ができました。

じつはつじ(実は辻)
にくいくに(憎い国)
もかのむのかも(モカ飲むのかも)
おかねもちもねがお(お金持ちも寝顔)
えいきようよきいえ(影響良き家)
かいしやいんいやしいか(会社員賤しいか)
ていきいれのれいきいて(定期入れの例聞いて)

面白い回文ができたら教えてください。

コメント

タイトルとURLをコピーしました