- ベストアンサー
エクセルで回文を作る関数を組みたい
- エクセルで回文(とまと、しんぶんし、たけやぶやけた、など)を作る関数を組みたいです。
- セルA1に任意の文字数の文を入力すると、セルB1にそれを逆からならべた文を自動的に表示するような関数を組みたい
- 入力セル1個、出力セル1個にしないとカッコよくないですね。次に考えたのが、len関数でセルA1の文字数を検知して、それを引数にしてleft,raight,mid関数で文字を取り出そうと思ったのですが、文字数が増えるごとに関数が1個必要になるので、とても任意の文字数に対応できませんでした。あらかじめ関数として用意されていませんかねえ?文を逆転させる関数って。どなたか、エクセルに詳しい方、お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 関数でやるとなると文字数だけオートフィルが必要になると思います。 そこでVBAになってしまいますが・・・ 一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてA列にデータを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Intersect(Target, Columns(1)) Is Nothing Or Selection.Count <> 1 Then Exit Sub Dim k As Long Dim str, buf As String For k = Len(Target) To 1 Step -1 str = Mid(Target, k, 1) buf = buf & str Next k With Target.Offset(, 1) .Value = buf If Target = Target.Offset(, 1) Then .Offset(, 1) = "○" Else .Offset(, 1) = "×" End If End With End Sub 'この行まで ※ 「よのなかばかなのよ」等々色々入力してみてください。 ご希望の方法でなかったらごめんなさいね。m(_ _)m
その他の回答 (1)
- superLightWave
- ベストアンサー率50% (3/6)
ワークシート関数では辛そうですが(文字列反転関数がもともとあるかどうかは調べてません・・)、ユーザー定義関数(VBAマクロ関数)というのを作れば簡単です。 Visual Basic Editorを開いて、該当Bookに標準モジュールを新たに挿入します。 その標準モジュールに下記のような関数を書きます。 ↓↓↓ Function 文字列反転(文字列 As Variant) For i = Len(文字列) To 1 Step -1 文字列反転 = 文字列反転 & Mid(文字列, i, 1) Next End Function ↑↑↑ Visual Basic Editorを閉じ、元のワークシートでA1に元の文字列を入れたとして、B1に今作成した関数を書きます。 =文字列反転(A1) Visual Basic Editorの細かいところは端折って説明しているので、不明点は検索するなどしてみてください。 このあたりが参考になるかもしれません:http://www.konomiti.com/Ex_kan_05.html なお、上に示した関数では反転した文字列を表示するだけですが、「しんぶ」を入れたら「しんぶんし」と表示するような関数も、ちょっと工夫すれば簡単にできます。チャレンジしてみてください。
お礼
ありがとうございます。 関数だけだと難しいんですね。
お礼
ありがとうございます。 関数だけだと難しいんですね。