
概要
エクセルで回文(とまと、しんぶんし、たけやぶやけた、など)を作る関数を組みたいです。
詳細
セルA1に任意の文字数の文を入力すると、セルB1にそれを逆からならべた文を自動的に表示するような関数を組みたい
自分で途中まで考えてみましたが、任意の文字数、ってところが難しい所ですね。
また、できれば入力セル、出力セル、ともにひとつのセルで済ませたいです。
1セル1文字ならば簡単ですよね。
1セル1文字に縦書きにするとしたら
B列に
セルB1=A10
セルB2=A9
セルB3=A8
セルB4=A7
セルB5=A6
セルB6=A5
セルB7=A4
セルB8=A3
セルB9=A2
セルB10=A1
とするだけです。
ネコでもできますわな。(笑)
入力セル1個、出力セル1個にしないとカッコよくないですね。
次に考えたのが、len関数でセルA1の文字数を検知して、それを引数にしてleft,raight,mid関数で文字を取り出そうと思ったのですが、文字数が増えるごとに関数が1個必要になるので、とても任意の文字数に対応できませんでした。
あらかじめ関数として用意されていませんかねえ?
文を逆転させる関数って。
どなたか、エクセルに詳しい方、お願いします。
No.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
No.1
- 回答日時:
ワークシート関数では辛そうですが(文字列反転関数がもともとあるかどうかは調べてません・・)、ユーザー定義関数(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
なお、上に示した関数では反転した文字列を表示するだけですが、「しんぶ」を入れたら「しんぶんし」と表示するような関数も、ちょっと工夫すれば簡単にできます。チャレンジしてみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数式を残したまま、別のセルに...
-
貼り付けで複数セルに貼り付けたい
-
Excel for Mac使用中ポインタが...
-
Excel 例A(1+9) のように番地の...
-
枠に収まらない文字を非表示に...
-
エクセルの書式設定の表示形式...
-
エクセル オートフィルタで絞...
-
エクセル 足して割る
-
エクセルで太字だけの合計を出...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
エクセルでセルにページ番号を...
-
エクセルの一つのセルに複数の...
-
エクセルで指定したセルのどれ...
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
-
(Excel)数字記入セルの数値の後...
-
エクセルのセルの枠を超えて文...
-
EXCELのセルの中の半角カンマの...
-
Excelでのコメント表示位置
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
エクセルで指定したセルのどれ...
-
vba テキストボックスとリフト...
-
セルをクリック⇒そのセルに入力...
-
枠に収まらない文字を非表示に...
-
Excel for Mac使用中ポインタが...
-
数式を残したまま、別のセルに...
-
Excel 例A(1+9) のように番地の...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルの書式設定の表示形式...
-
(Excel)数字記入セルの数値の後...
-
エクセルのセルの枠を超えて文...
-
Excelで数式内の文字色を一部だ...
-
Excelでのコメント表示位置
-
【エクセル】IF関数 Aまたは...
-
エクセルの一つのセルに複数の...
-
excelの特定のセルの隣のセル指...
-
【Excel】 セルの色での判断は...
-
対象セル内(複数)が埋まった...
おすすめ情報