
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんばんは。
即席で、マクロを作ってみました。
ThisDocument か、標準モジュールに登録してご利用ください。
まだ、試験段階ですが、この両方の漢数字を、対象にして、ThisDocument 内の全ての漢数字を変換します。
例:
一二三四五六七八九〇
十二億三千四百五十六万七千八百九十
なお、現在は、コンマ切りはしていません。
リクエストによって、直します。
マクロ名は、Kansu2Suji_henkan
Option Explicit
Sub Kansu2Suji_henkan()
Dim t As Integer, myMsg As String
Dim moji As String
Selection.HomeKey Unit:=wdStory '文書の先頭に
On Error GoTo Errmsg:
With Selection.Find
.ClearFormatting
.Text = ""
.Replacement.Text = ""
.MatchFuzzy = False
While .Execute(FindText:="[一二三四五六七八九兆億万千百十〇]{1,}", _
Wrap:=wdFindContinue, MatchWildcards:=True) = True
moji = Selection.Range
Selection.Range = Kansu2SujiDec(moji)
t = t + 1
If t = 0 Then GoTo Msg
Wend
Msg:
Selection.HomeKey Unit:=wdStory '文書の先頭に
If t > 0 Then
myMsg = t & "語、変換しました。"
Else
myMsg = "変換するべき数字はありません"
End If
MsgBox myMsg, , Title:="漢数字からアラビア数字に"
End With
Exit Sub
Errmsg:
MsgBox "エラー!: " & Err.Description, vbExclamation
End Sub
Private Function Kansu2SujiDec(ByVal moji As String)
Dim i As Integer, k As Integer, m As Integer, j As Integer
Dim fig As Double, buf As Double, bufk(1 To 3)
Dim sum As Double, f As Variant, s As String
Const keta1 As String = "〇一二三四五六七八九"
If moji Like "[" & keta1 & "]" & "[" & keta1 & "]*" Then
s = moji
For j = 0 To Len(keta1) + 1
s = Replace(s, Mid(keta1, j + 1, 1), CStr(j))
Next j
Kansu2SujiDec = CDbl(s)
Else
For i = 1 To Len(moji)
fig = myFindfig(Mid(moji, i, 2), k, m)
If m > 0 Then
bufk(m) = buf * fig
buf = Empty
Else
buf = buf + fig
End If
i = i + k
k = 0: m = 0
Next i
For Each f In bufk
sum = sum + f
Next
Kansu2SujiDec = sum + buf
End If
End Function
Private Function myFindfig(ByRef s As String, k As Integer, m As Integer)
Dim lc1 As Integer, lc2 As Integer, lc3 As Integer
Const keta1 As String = "一二三四五六七八九"
Const keta2 As String = "十百千"
Const keta3 As String = "万億兆"
If s Like "[" & keta1 & "]" & "[" & keta2 & "kata3" & "]" Then
k = 1
lc1 = InStr(keta1, Left$(s, 1))
lc2 = InStr(keta2, Right$(s, 1))
lc3 = InStr(keta3, s)
If lc2 > 0 Then
myFindfig = 10 ^ lc2 * lc1
ElseIf lc3 > 0 Then
myFindfig = 10 ^ (4 + lc3 * 4)
End If
Else
lc1 = InStr(keta1, Left(s, 1))
lc2 = InStr(keta2, Left(s, 1))
lc3 = InStr(keta3, Left(s, 1))
If lc3 > 0 Then m = lc3
myFindfig = lc1 - (lc2 <> 0) * 10 ^ lc2 - (lc3 <> 0) * 10 ^ (lc3 * 4)
End If
End Function
No.3
- 回答日時:
どれくらいの数があるのかわかりませんが、「編集」の「変換」で漢数字を数字に変換するのはどうでしょうか?
例えば、「三」を「3」に「五」を「5」に、「十」は「」(なし)にすれば、
もしくはダイレクトに「三十五」を「35」にする。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法 8 2023/05/08 14:50
- ノートパソコン ”IMEが無効です” というメッセージが出ます! 4 2023/05/02 09:56
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Word(ワード) ワードで,特定の文字だけ,字体を一括変換する方法は? 1 2023/04/26 10:11
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- 日本語 なぜ「壊石料理」と記述するのでしょうか? 26 2023/06/17 13:01
- マウス・キーボード 教えて! AppleのMagic Keyboard(JIS)をWindows 10で使用次第のですが 2 2022/06/01 18:07
- Excel(エクセル) Excelについて 7 2023/03/12 17:01
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
このQ&Aを見た人はこんなQ&Aも見ています
-
縦書きにした時の数字を漢数字にしたい
Word(ワード)
-
エクセル2000で、漢数字から算用数字へ変換する関数
Excel(エクセル)
-
ワードで縦書き半角漢数字に出来ますか?
Word(ワード)
-
-
4
ワードで算用数字を漢数字に変換するマクロについて
その他(Microsoft Office)
-
5
漢数字の変換
Access(アクセス)
-
6
ワードで住所の漢数字番地の縦棒線を縦入力
年賀状作成・はがき作成
-
7
【ワード】漢数字から数字への一括変換マクロ
Word(ワード)
-
8
ハガキ宛名の住所の数字を漢数字に直すには?
その他(Microsoft Office)
-
9
WORD2010の差込印刷で数字を縦にしたい。
Word(ワード)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度・経度の値をエクセルで変...
-
エクセル関数/10進法から60進法...
-
勝手に無変換になる
-
つらそう…を丁寧に言うなら、お...
-
wav~mp3に変換?!
-
青の吹き出しの何をどう考えれ...
-
フォルダ、ファイル名の一括変...
-
●Illustrator CMYKをRGB変換し...
-
ペン画をエッチングに変換でき...
-
カーナビにスマホ画面を表示さ...
-
拡張子omaをm4a又はmp4に直接変...
-
動画の変換、ISO→MP4での出力方法
-
TeamViewerを使って録画したフ...
-
超アナログモニター(電子回路+...
-
青天の券の
-
画像変換について
-
RGB→CMYK変換について
-
MacbookAirの給電
-
土日祝 の正しい読みは
-
音声信号の光信号への変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度・経度の値をエクセルで変...
-
エクセル関数/10進法から60進法...
-
勝手に無変換になる
-
意外に?以外に??どちらが正...
-
無料でも使えるSSDを、MBRからG...
-
つらそう…を丁寧に言うなら、お...
-
●Illustrator CMYKをRGB変換し...
-
Wordに囲い文字というのがない...
-
VB.NETで小数点以下の桁数を取...
-
カーナビにスマホ画面を表示さ...
-
フォルダ、ファイル名の一括変...
-
スクリーンショット:文字がぼ...
-
MP3を楽譜に変換するサイト、ア...
-
pdfの色データをCMYK→K+Cの2色...
-
土日祝 の正しい読みは
-
CADソフトの拡張子変換
-
エクセル DEC2BIN 範囲外数値の...
-
単位の リューベ って
-
Windows Media PlayerからMP3に...
-
Google 日本語入力の調子がおか...
おすすめ情報