
No.4ベストアンサー
- 回答日時:
ANo1です。
あまり時間がとれないので、すみませんが考え方のみ・・・
(せっかくコードを提示していただいたのに、ごめんなさい)
基本的には数値を各桁に分解して、あとは文字列処理ということになりますが、ご提示のコードの各行が質問者様の思っている通りに実行されているかをテストしてみたほうがよさそうです。(かなり問題あり)
大雑把な考え方として・・・
1)数字を4桁ごとにひとくくりとして分解する
2)それぞれについて各桁に単位をつけて○千○百○十○みたいに変換
3)4桁ごとに単位(万、億、兆・・・)を付ける
注)・数値の値が0の桁には単位(千百十)は付けない
・4桁区切りでの値が0なら単位(万、億、兆・・・)も付けない
・・で、大体のところまではできますが、実は、1101は一千百一なのか千百一なのか、あるいは、11001は一万一千一なのか、一万千一なのかのように数値が1の場合の表示をどの様にするのかのルール作りを、最初にきちんと整理しておかないと、後で変なところがでてくる可能性があります。
ルール決めについては、使用言語が違うけど↓あたりが参考になるかと。(後半の部分)
http://oshiete1.goo.ne.jp/qa4391551.html
(言語が違っても計算式は似たようなものなので、多少はロジックの参考にもなるかも知れません。 ただし、縮めているので読みにくいけど。)
どうも有難う御座います!
勉強し始めたばかりなので、教えていただいたコードを
一つ一つ理解して早く慣れるようにしたいと思います。
No.3
- 回答日時:
一例です。
Private Sub cmdketa_Click()
Dim Suzi: Dim Kansuzi As String
Dim i As Integer: Dim iLen As Integer
Dim Keta As String: Dim Ans As String
Kansuzi = "〇一二三四五六七八九"
Keta = "一十百千万"
iLen = Len(txtsuzi.Text)
Suzi = CLng(txtsuzi.Text)
For i = 1 To iLen
Select Case Suzi Mod 10
Case 1
Ans = Mid(Keta, i, 1) & Ans
If i = 5 Then Ans = "一" & Ans '1万の時だけ一を付ける
Case 2 To 9
Ans = Mid(Kansuzi, Suzi Mod 10 + 1, 1) & Ans
End Select
Suzi = Suzi \ 10
If Suzi Mod 10 > 1 Then Ans = Mid(Keta, i + 1, 1) & Ans
Next i
lblkansuzi.Caption = Ans
End Sub
ご丁寧に教えていただき有難う御座いました!
まだ参考書などの例題を見様見真似で作っているにすぎないので
一つ一つ調べながら、どういう流れで結果が出ているのか勉強して
いきたいと思います。
No.2
- 回答日時:
こんにちは
誰でも最初は初心者です
が、これでデバッグできていますか?
簡単なほうだけ
Private Sub cmdhenkan_Click()
Dim Suzi: Dim Kansuzi As String
Dim i As Integer: Dim iLen As Integer
iLen = Len(txtsuzi.Text)
''Suzi = txtsuzi
''Kansuzi = lblkansuzi
Suzi = txtsuzi.Text
Kansuzi = ""
For i = 1 To iLen
''Select Case txtsuzi.Text
Select Case Mid(Suzi, i, 1)
Case "0"
''lblkansuzi.Caption = "〇"
Kansuzi = Kansuzi & "〇"
Case "1"
''lblkansuzi.Caption = "一"
Kansuzi = Kansuzi & "一"
Case "2"
''lblkansuzi.Caption = "二"
Kansuzi = Kansuzi & "二"
Case "3"
''lblkansuzi.Caption = "三"
Kansuzi = Kansuzi & "三"
Case "4"
''lblkansuzi.Caption = "四"
Kansuzi = Kansuzi & "四"
Case "5"
''lblkansuzi.Caption = "五"
Kansuzi = Kansuzi & "五"
Case "6"
''lblkansuzi.Caption = "六"
Kansuzi = Kansuzi & "六"
Case "7"
''lblkansuzi.Caption = "七"
Kansuzi = Kansuzi & "七"
Case "8"
''lblkansuzi.Caption = "八"
Kansuzi = Kansuzi & "八"
Case "9"
''lblkansuzi.Caption = "九"
Kansuzi = Kansuzi & "九"
End Select
Next i
lblkansuzi.Caption = Kansuzi
End Sub
万,千,百,十は
これから色々疑問が出てくると思うので省略させていただきます
それからコントロールと同じ名称で変数を宣言するのは
よろしくありません
No.1
- 回答日時:
>数字から漢数字への変換に挑戦しているのですが、
方法はいろいろあると思います。
ご自分で、できたところまでを提示しましょう。
この回答への補足
すみません!
cmdhenkanが”変換”コマンドボタン(65432→六五四三二へ)で、
cmdketaが”変換2”コマンドボタン(65432→六万五千四百三十二へ)です。
Option Explicit
Private Sub cmdhenkan_Click()
Dim Suzi: Dim Kansuzi As String
Suzi = txtsuzi
Kansuzi = lblkansuzi
Select Case txtsuzi.Text
Case "0"
lblkansuzi.Caption = "〇"
Case "1"
lblkansuzi.Caption = "一"
Case "2"
lblkansuzi.Caption = "二"
Case "3"
lblkansuzi.Caption = "三"
Case "4"
lblkansuzi.Caption = "四"
Case "5"
lblkansuzi.Caption = "五"
Case "6"
lblkansuzi.Caption = "六"
Case "7"
lblkansuzi.Caption = "七"
Case "8"
lblkansuzi.Caption = "八"
Case "9"
lblkansuzi.Caption = "九"
End Select
End Sub
Private Sub cmdketa_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
lblkansuzi = a
lblkansuzi = b
lblkansuzi = c
lblkansuzi = d
lblkansuzi = e
a = len(&"万") * 10000
b = len(&"千") * 1000
c = len(&"百") * 100
d = len(&"十") * 10
e = len()*1
End Sub
Private Sub lblkansuzi_Click()
Dim txtsuzi: Dim lblkansuzi As String
Dim i As Long
txtsuzi = "00000"
iLen = Len(textsuzi)
For i = 1 To iLen
lblkansuzi.Print Mid(txtsuzi, i, 1)
Next i
End Sub
見づらくて申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0の「vbFromUnicode」はVB....
-
C#で文字列を数値に変換する方法
-
VB.NETで1→A、2→B、26→Z、27→AA...
-
【C++/CLI】int型からString型...
-
C++/CLI System::String::Fotma...
-
C#でListとDictionaryの判別方法
-
vb6の桁数指定
-
文字列クラスをoperatorオーバ...
-
sscanfの16進出力の逆処理
-
textbox.textやlabel.captionの...
-
16進をASCIIコードに変換する...
-
2進数から10進数へ変換
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
Dir関数で読み取り順を操作でき...
-
『列名 '担当者CD' があいま...
-
VBAコンボボックスの内容が反映...
-
大量の変数を定義するにはどう...
-
フォームからのデータの受け渡...
-
VB6のテキストボックスに入力し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6.0の「vbFromUnicode」はVB....
-
VB.NETで1→A、2→B、26→Z、27→AA...
-
WORD型をCString型に変換する方法
-
C#で文字列を数値に変換する方法
-
C++ 文字列変数と16進数の比較
-
16進コード文字列を文字列に変換
-
vb6の桁数指定
-
16進をASCIIコードに変換する...
-
2の補数の計算について
-
VBAのstrConv関数のUNICODE変換...
-
10進数を2進数
-
【C++/CLI】int型からString型...
-
数値の値を時刻に変換する方法...
-
ASPでVBのFormat関数のような機...
-
c# 暗黙/明示的型変換の許容範囲
-
EXCEL VBA
-
Boolean型変数の値を反転する方法
-
数字→漢数字変換
-
日付を変換したい
-
対数変換のついて
おすすめ情報