Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

「2-34-56」を「二ー三四ー五六」に変える。(エクセル)

年賀状の宛名印刷をしようと思います。 印刷はワードでしますがエクセルで作った名簿を利用しようと思います。 住所の番地だけ入力したセルがあります。 例「2-34-56」 これをワードで縦書きで宛名印刷したいので、 「二ー三四ー五六」に変える方法を教えて下さい。 よろしくお願いします。 環境「エクセル2003」+「ワード2000」

質問者が選んだベストアンサー

  • ベストアンサー
  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.2

数値だけなら、NUMBERSTRING関数で変換できますが、"-"が入っているので、 =NUMBERSTRING(LEFT(A1,1),3)&"ー"&NUMBERSTRING(MID(A1,3,2),3)&"ー"&NUMBERSTRING(MID(A1,6,2),3) で変換できます。 番地が、2-35-56のように桁数が同じならよいのですが、2-3-45や12-3-45などが混在していると面倒ですので、一旦「データ」-「区切り位置」の「カンマやタブなどの区切り文字に~」で「その他」の欄に「-」を入れて3つのセルに分割してから、 =NUMBERSTRING(A1,3)&"ー"&NUMBERSTRING(B1,3)&"ー"&NUMBERSTRING(C1,3) で変換させて、値のみ貼り付けたらどうでしょう。 NUMBERSTRING関数の引数は、1, 2, 3 で、次のようになります。 A1セルに 123 が入力されている場合、 NUMBERSTRING(A1,1) では、百二十三 NUMBERSTRING(A1,2) では、壱百弐拾参 NUMBERSTRING(A1,3) では、一二三 NUMBERSTRING(123,3) でも可。 また、今回はつかえませんが、Excelだけで使うなら、表示形式をユーザー定義で [DBNum1]G/標準 にすると、百二十三 [DBNum2]G/標準 にすると、壱百弐拾参 のように表示できます。

noujii
質問者

お礼

この関数知りませんでしたので、おもしろいです。 他の事にも使えそうです。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

#3の方の答えで良いと思いますが、 私も、ユーザー定義関数を作ってみました。 Public Function tr(str As String, replaceList As String, convertList) As String Dim i, c For i = 1 To Len(replaceList) str = Replace(str, Mid(replaceList, i, 1), Mid(convertList, i, 1)) Next tr = str End Function 使い方 =tr(A1,"123456789-","一二三四五六七八九ー") 対応する文字を置き換えます。

noujii
質問者

お礼

勉強になりました。ありがとうございました。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

書式のDBNUM1、関数NUBERSTRINGなどやってみたが、全角数字に対しては、上手く行かなかった。 エクセルで、セル内に全角で入力された、アラビヤ数字と-があるとき(漢字と混じっていても良い)、エクセル側で漢数字に変換して見ました。 ユーザー関数を作ります。 ツール-マクロ-VBEとクリックして進んで、VBEの画面になるが、そのメニューで挿入-標準モジュールをクリックする。出てきた画面に下記をコピペする。 Function kanji(a) x = "1234567890-" y = "一ニ三四五六七八九〇の" st = "" For i = 1 To Len(a) s = Mid(a, i, 1) p = InStr(x, s) If p = 0 Then st = st & s Else st = st & Mid(y, p, 1) End If Next i kanji = st End Function 次にシートに戻って、数字の入ったセルの右隣に列 挿入し、=KANJI(A1)のように関数式をいれる。 下方向へ式を複写する。 (テスト例) 本町3-23-14 神田町2-367 山田市奥町1-34-345 山田市奥町7-23-305 明神市神社町2-78メゾン3-345 エクセルのセルの書式で縦書きにしてみるとおかしなところはないようである。 ワードの方に指しこんだ時上手く行くかやって見てください。 なおハイフンは「の」に置換えたが、「ノ」や「ー」でも同じで、好みでy = "一ニ三四五六七八九〇の" の最後の文字を変えれば良いし、(他のケースで)「一」「三」も「壱」「参」にしたりもそこを変えれば出きる。

noujii
質問者

お礼

(>_<)うわぁースゴイ! カッコイイほど上手くいきました。 自分もこんな構文できるようなりたいです。 ありがとうございました。

すると、全ての回答が全文表示されます。
回答No.3

差込印刷が設定されているWord文書を開きAlt+F9を押します。 フィルドの編集画面になります。 { MERGEFIELD “住所” } といった形式で各フィールドが表示されます。 ※”住所”はフィールド名ですので、差込データの割付によって変わります。 この部分に下記のように \v というオプションを付け加えます。 上記の場合なら、このように変更します。 { MERGEFIELD “住所” \v } これで、英数字が漢数字に置き換えられます。 もとの文書編集画面に戻すには、もう一度 Alt+F9 を押します。

noujii
質問者

お礼

ありがとうございます。 Alt+F9で画面を切り替えると、仰るとおりの { MERGEFIELD “住所” }は出てこず、 { MERGEFIELD “郵便番号” }という文字が4つ位現れます。 (はがきには番地以外はキレイに縦書きに載ってます。) 便利そうな方法ですがこれ以上試せませんでした。 スミマセン。

すると、全ての回答が全文表示されます。
noname#113407
noname#113407
回答No.1

【セルの書式設定】で【表示形式】を【文字列】に変更してはどうですか。

noujii
質問者

お礼

ありがとうございます。 早速、試しましたが、、(-_-)だめでした。 残念。

noujii
質問者

補足

「2-34-56」を既に入力したセルを漢数字に変えたいのです。 もしくは「二ー三四ー五六」と別にセルに表示させる方法でも構いません。

すると、全ての回答が全文表示されます。

関連するQ&A