• ベストアンサー

format関数についてです。

A→0A、B→0B、C→0Cという風にFORMAT関数で変換 したいでです。 format("A","00")の結果は「A」です。 どのような文字列で、変換できるのでしょうか? それともこのような処理は、format関数ではできないのでしょうか? 今は力づくで、"A"なら"0A"、"B"なら"0B"と select文で書いています。

質問者が選んだベストアンサー

  • ベストアンサー
noname#6131
noname#6131
回答No.3

補足です。 "\"ですが、直後に続くキャラクターをそのまま出力します。 "0"は、そのままだと、フォーマットの方法を指定する特別な文字ですので、このようにして"\"を直前に入れてやる必要があります。 "@"は文字をその位置に出力します。 今回の例だと、"A"がここに現れます。 "@"はヘルプの文字列表示書式指定文字、"\"、"0"は数値表示書式指定文字に記述があります。 ちなみに「リテラル」とは、「文字」「キャラクター」を難しく言ったものと思えばいいです。 :-)

bruce1104
質問者

お礼

皆様、回答ありがとうございます。 とても勉強になりました。

その他の回答 (2)

  • miuhr
  • ベストアンサー率19% (12/63)
回答No.2

先に出てしまいましたが  format("A","\0@") で大丈夫です。 または単に0が付くだけなら先頭に  "0"+ を付けてあげれば良いですよ。 後に応用するなら関数がオススメですが状況によりますね。 どちらが処理が重いのかは調べて下さいね。

noname#6131
noname#6131
回答No.1

format("A","\0@") でどうでしょう。

bruce1104
質問者

お礼

さっそくの回答ありがとうございます。 できました。ありがとうございます。 ところで\0@には、どういう意味があるのでしょうか? 調べてみたところ「\」=「次に入力する文字を本来のリテラルおじとして扱う」 と私がもっているVBの本にありましたが、いまいちよくわかりません。 「@」にもどういう意味があるのでしょうか? すいませんが、教えていただけるととても参考になります。

関連するQ&A