[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『漢数字を算用数字に変換する方法』(masabou5)
一二三-四五六七・・・ 等の漢数字を算用数字(123-4567)のように変換する方法はありませんか?
VBAでも結構です。よろしくお願いします。
For Each c In Selection c.Offset(, 1).Value = StrConv(Application.GetPhonetic(c.Value), vbNarrow) Next c こんなので、いかがでしょう。 選択セルの右隣の列へ書き出します。 複数列で選択しないようにしてください。 (KAMIYA)
KAMIYAさん、こんばんワ。やってみたんですが、右隣の列に[ヒフミーヨンゴロクシチ] と半角で表示されます。オラのやり方が悪いのでしょうか?詳しく全文載せてくださいませんか。 masabou5さん、横から失礼します(kobi)
A1セルの漢数字+"-" を 数字+"-"に直してB1セルに表示します。
見ての通り、一文字ずつの変換です。
Sub 漢数字変換()
Dim 文字 As String
Dim 漢数字 As String
Dim 文字数 As Integer
Dim i As Integer
文字 = Cells(1, 1).Value
文字数 = Len(文字)
For i = 1 To 文字数
If Mid(文字, i, 1) = "一" Then
漢数字 = 漢数字 + "1"
End If
If Mid(文字, i, 1) = "二" Then
漢数字 = 漢数字 + "2"
End If
If Mid(文字, i, 1) = "三" Then
漢数字 = 漢数字 + "3"
End If
If Mid(文字, i, 1) = "四" Then
漢数字 = 漢数字 + "4"
End If
If Mid(文字, i, 1) = "五" Then
漢数字 = 漢数字 + "5"
End If
If Mid(文字, i, 1) = "六" Then
漢数字 = 漢数字 + "6"
End If
If Mid(文字, i, 1) = "七" Then
漢数字 = 漢数字 + "7"
End If
If Mid(文字, i, 1) = "八" Then
漢数字 = 漢数字 + "8"
End If
If Mid(文字, i, 1) = "九" Then
漢数字 = 漢数字 + "9"
End If
If Mid(文字, i, 1) = "〇" Then
漢数字 = 漢数字 + "0"
End If
If Mid(文字, i, 1) = "-" Then
漢数字 = 漢数字 + "-"
End If
Next i
Cells(1, 2).Value = 漢数字
End Sub
何のテクニックもないコードです (マーヤ)
>kobiさん getphoneticは入力状況に左右されるようです。 そーか、そういう風に入力して辞書変換すると、確かに使えませんねぇ。 「ヒフミーヨンゴロクシチ」はそのように入力されているのが 目に浮かびます。「フリガナ」に「123」になっていても 見事に「ヒフミ」になってしまいます。 ケンショウブソクのため「却下」でお願いします。 他の方法考えてみます。 (KAMIYA)
ありゃ、また横から入って迷惑かけてる?そーか、数字で入力してあるのか・・・・ でも再現できず、。。。 頭も連休 (kobi)
というわけで(?)雪辱戦です。 範囲選択して実行してください。セルの漢数字を半角アラビア数字に 置き換えます。ついでにハイフォンも半角にします。
Sub 漢数字TOアラビア数字() Dim i As Integer Dim c As Range Dim vardata(0 To 9) As String
For i = 0 To 9
vardata(i) = Mid("〇一二三四五六七八九", i + 1, 1)
Next i
For Each c In Selection
For i = 0 To 9
c.Value = WorksheetFunction.Substitute(c.Value, vardata(i), i)
Next i
c.Value = StrConv(c.Value, vbNarrow)
Next c
End Sub (KAMIYA)
これと同じ質問を以前にみたけど、そのときのmasabou5さんとは違う人なりか? それともこの時とは違う質問? (ramrun)
[[20030904062745]]『住所録の三−八八などを3−88のように』(masabou5)
出かけていて御礼が遅くなり、すみませんでした。 KAMIYAさん、マーヤさん、kobiさん、ありがとうございました。 確認できました。お陰様で簡単に変換することが出来ました。
尚、ramrumさん、おっしゃるとおり同一人物です。あの時はまだよく理解できず、 又同じような質問を出してしまいました。すみませんでした。 しかし、マクロとユーザ定義関数の両方を理解することが出来ました。 心から感謝申し上げます。(masabou5)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.