タイトル : Re^4: VB2005で通貨型(MDB)の扱い 投稿日 : 2010/02/25(Thu) 18:44 投稿者 : 魔界の仮面弁士
失礼しました。VB.NET2003 (VB7.1 / .NET 1.1) でしたね。 > # ちなみにString.Formatはほとんど使った事ないですが「より細かい制御」は > # まだちょっと調べただけですが意外と複雑ですね…{0:0}をどう変えればどうなる等々 > # 今回の件のついては {0:0} で十分そうですが 基本形は、 s = String.Format("{0} と {2} と {1}", a, b, c) です。{番号}の位置に引数のデータが埋め込まれます。 書式を指定する場合には、{番号:書式}とコロンで区切って指定します。 指定できる文字は元データの型によって異なりますので、ヘルプで確認してください。 Dim num As Integer = 4321 Dim dt As Date = Now s = String.Format("0埋め5桁 = {0:00000}", num) s = String.Format("3桁区切り= {0:#,0}", num) s = String.Format("小16進数 = {0:x}", num) s = String.Format("大16進数 = {0:X}", num) s = String.Format("日付 = {0:yyyy/MM/dd HH:mm:ss.fffffff}", dt) s = String.Format("24時間法={0:%H}時、12時間法={0:tt %h}時", dt) そして、幅(桁数)を指定する場合には、{番号,桁数}とカンマで区切って指定します。 書式と同時に指定する場合には、{番号,桁数:書式} という記述になります。 s = String.Format("『{0,20}』" , num) '20文字分の幅があり、数値は右寄せ s = String.Format("『{0,-20}』", num) '20文字分の幅があり、数値は左寄せ s = String.Format("『{0,20:#,0}』", num) '20文字分の幅で、桁区切り有りで右寄せ より詳しい解説はこちら。 http://msdn.microsoft.com/ja-jp/library/txafckwd.aspx >> なお、書式化の際にはカルチャも明示した方が安全です。 >> (アプリケーションの仕様にもよりますが) カルチャの指定例。 Dim fmt As String = "{0:g yyyy/M/d dddd}" Dim ci As System.Globalization.CultureInfo ci = System.Globalization.CultureInfo.InvariantCulture MsgBox(String.Format(ci, fmt, dt), vbInformation, "日付") ci = New System.Globalization.CultureInfo("de-DE") MsgBox(String.Format(ci, fmt, dt), vbInformation, "独逸") ci = New System.Globalization.CultureInfo("ko-KR") MsgBox(String.Format(ci, fmt, dt), vbInformation, "韓国") ci = New System.Globalization.CultureInfo("ja-jp") MsgBox(String.Format(ci, fmt, dt), vbInformation, "日本") ci.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar() MsgBox(String.Format(ci, fmt, dt), vbInformation, "和暦") なお、カルチャとしては利用できませんが、旧暦用のクラスもあります。 http://blogs.wankuma.com/ogiogi/archive/2006/11/07/43917.aspx |