goo blog サービス終了のお知らせ 

GoGoマクロのブログ

初心者向けマクロ講座「Go!Go!マクロ」の筆者三太郎の公式ブログです。

商品コードを6桁に揃えたい

2012-08-14 16:11:27 | マクロ作成のコツ

にほんブログ村 IT技術ブログへ


Q.

> J列の商品コードを6桁で揃えた(桁数が不足する場合は、頭にゼロをつけて)
> 上で、文字列として表記させたいのですが。。。
>
> 見た目を6桁にすることは、Range("J:J").NumberFormat = "000000"で可能なの
> ですが、これでは見た目が6桁になっているだけとなってしまいます。




A.

これは、NumberFormat を使っているからというのが原因ですね。
この場合は、Format関数を使って Format(a, "000000") などと記述します。

例えば、今回のような6桁に揃えたいという場合なら

  a = 1234
  b = Format(a, "000000")

というようにすると b = "00123" (頭0の付いた文字列)となります。
(カッコ内の0の数が6個で6桁の意味です。)


Format(関数)とNumberFormat(プロパティ) というものは似てはいますけど
別物です。
(Formatは文字列に型変換されますが、NumberFormatはセルの表示形式を
変えるだけです。)

なのでこの場合には、Format関数の方を使ってやってみてください。


なお、これをシートに書き出す場合には書式的に標準のままでは頭の0は
無視されてしまいますので、その値の出力対象セルの書式設定を、予め

  Selection.NumberFormatLocal = "@"

の一文にて、文字列の書式に設定した上で書き出すようにします。
(この一文も「マクロの記録」を使って記録してみれば簡単に得る
ことができます。)



マクロの記述例:

  a = 1234
  b = Format(a, "000000")
  Range("B2").Select
  Selection.NumberFormatLocal = "@"
  ActiveCell.FormulaR1C1 = b




コメント    この記事についてブログを書く
« プロのプログラムの作り方 | トップ | ヤングなでしこ! »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

マクロ作成のコツ」カテゴリの最新記事