advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 14741 for VBA�������������� (0.003 sec.)
[[20231212113647]]
#score: 3407
@digest: 2dfd93c52ec5727b7a811ff876924145
@id: 95769
@mdate: 2023-12-13T06:06:38Z
@size: 4140
@type: text/plain
#keywords: numtokan (39289), 日⇒ (26876), 一二 (26779), 和五 (23246), 和5 (22332), num2 (14389), 五年 (13347), 令和 (12370), 漢数 (10817), 二月 (9830), 事変 (9815), 年一 (9733), num3 (9412), num1 (8024), 月一 (7294), 二日 (6479), 二三 (5765), 年12 (5502), 月12 (4412), calculation (4026), 生年 (2952), xlcalculationautomatic (2794), xlcalculationmanual (2765), 和暦 (2704), rng (2677), replace (2608), 変換 (2097), 数字 (1398), 括変 (1277), 2023 (1204), 月日 (1184), シリ (1156)
VBA 和暦に変換』(1250)
色んなシートから引用し名前や住所、生年月日を一つにまとめてる表があります。 まとめた表を最終的に数字から漢数字に直すのですが 数字から漢数字に一括変換できるVBAをネットで見つけたので実行しましたが パソコンによってうまく変換できない場合があります。 私が使用しているのは、Excel2013 バージョンはWindows10 うまく実行されないのは、Excel2019 バージョンはWindows11です。 Sub 数字を漢数字に変換() On Error Resume Next Application.Calculation = xlCalculationManual Dim num1, num2, num3 Dim i As Integer Dim Rng As Range num1 = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0") num2 = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0") num3 = Array("一", "二", "三", "四", "五", "六", "七", "八", "九", "〇") For Each Rng In Selection '数字のみ半角に統一 For i = 0 To 9 Rng.Value = Replace(Rng.Value, num1(i), num2(i)) Next i '漢数字化 For i = 0 To 9 Rng.Value = Replace(Rng.Value, num2(i), num3(i)) Next i Next Rng Application.Calculation = xlCalculationAutomatic End Sub 上記のVBAを実行すると生年月日が令和5年12月12日⇒令和五年一二月一二日と表示されるセルと 令和5年12月12日⇒2023/12/12と表示されるセルがあります。 セルの書式設定で和暦にしても直りませんでした。 対処法をご教示ください。 範囲が違う場合もあるので、範囲選択してからVBAを実行しています。 またリンクを値に変換せずにVBAを実行しています。 数字から漢数字に変換できれば上記のVBAでなくても構いません。 よろしくお願いいたします。 < 使用 Excel:Excel2013、使用 OS:Windows10 > ---- 対象エリアに入力されているのはシリアル値ですか?文字列ですか? 上記VBAでの変換は文字列が想定されていると思いますが。(試してませんが) (ゆたか) 2023/12/12(火) 12:02:41 ---- >For Each Rng In Selection の次の行に Rng.NumberFormatLocal = "ggge""年""m""月""d""日""" と入れて2か所の >Rng.Value = Replace(Rng.Value, num1(i), num2(i)) を Rng.Value = Replace(Rng.Text, num1(i), num2(i)) としてはどうだろうか? (ねむねむ) 2023/12/12(火) 12:37:29 ---- おっと >Rng.Value = Replace(Rng.Value, num1(i), num2(i)) を Rng.Value = Replace(Rng.Text, num1(i), num2(i)) >Rng.Value = Replace(Rng.Value, num2(i), num3(i)) を Rng.Value = Replace(Rng.Text, num2(i), num3(i)) で。 (ねむねむ) 2023/12/12(火) 12:39:14 ---- > 上記のVBAを実行すると生年月日が令和5年12月12日⇒令和五年一二月一二日と表示されるセルと > 令和5年12月12日⇒2023/12/12と表示されるセルがあります。 原因はおそらく下記のようなことでしょう。 令和5年12月12日⇒令和五年一二月一二日と表示されるセル セルの書式設定が文字列になっている。 令和5年12月12日⇒2023/12/12と表示されるセル これは 二〇二三/一二/一二 となるの間違いではないでしょうか。 もしそうなら、セルにはシリアル値が入力されて書式設定が和暦になっている。 生年月日が文字列でもシリアル値でも漢数字に変換する、住所などに含まれる数字も漢数字に変換するなら、下記でどうでしょう。 Sub 数字を漢数字に変換1() Application.Calculation = xlCalculationManual Dim Rng As Range For Each Rng In Selection If IsDate(Rng.Value) Then Rng.Value = NumToKan(Format(Rng.Value, "ggge年m月d日")) Else Rng.Value = NumToKan(Rng.Value) End If Rng.NumberFormatLocal = "@" Next Rng Application.Calculation = xlCalculationAutomatic End Sub Function NumToKan(s As String) As String Const s1 = "0123456789-" Const s2 = "〇一二三四五六七八九-" Dim i As Long NumToKan = s For i = 1 To 10 NumToKan = Replace(NumToKan, Mid(s1, i, 1), Mid(s2, i, 1), 1, -1, vbTextCompare) Next End Function (hatena) 2023/12/12(火) 23:16:11 ---- 返信が遅くなり申し訳ございません。 ねむねむ様に教えていただいた方法で 3台のパソコンで確認し無事変換することができました。 教えていただきありがとうございました。 hatena様も詳しく教えていただきありがとうございました。 教えていただいたマクロでも無事変換できましたので この方法もある、ということでメモして覚えておこうと思います。 (1250) 2023/12/13(水) 15:06:38 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/202312/20231212113647.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97065 documents and 608342 words.

訪問者:カウンタValid HTML 4.01 Transitional