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分くらいで次のような回文ができました。
じつはつじ(実は辻)
にくいくに(憎い国)
もかのむのかも(モカ飲むのかも)
おかねもちもねがお(お金持ちも寝顔)
えいきようよきいえ(影響良き家)
かいしやいんいやしいか(会社員賤しいか)
ていきいれのれいきいて(定期入れの例聞いて)
面白い回文ができたら教えてください。
コメント