Excel の宛名印刷で、3桁と4桁のセルにそれぞれ入っている郵便番号を、1桁ずつに分解していく方法を考えてみる。
1.住所録というブックに、Adrtable というシートを作っておく。名前は何でもよい。
2.郵便番号の3桁の数字をC列に、4桁の数字をD列に入れる。
3.同じシートの中に、分解した番号を入れておく7列、たとえばHIJKLMNを割り当てる。
4.郵便番号 974-8231 が、セル C1 と、セル D1 に入っているとする。
5.セルH1 に、セル C1 の3桁の左端の数字 9 を入れる数式を書き込む。
=INT(MOD(SIGN($C1)*$C1/100,10))
6.セルI1 に、3桁の左端から2番めの数字 7 を入れる数式を書き込む。
=INT(MOD(SIGN($C1)*$C1/10,10))
7.セルJ1 に、3桁の右端の数字 4 を入れる数式を書き込む。
=INT(MOD(SIGN($C1)*$C1/1,10))
8.セルK1 に、セル D1 の4桁の左端の数字 8 を入れる数式を書き込む。
=INT(MOD(SIGN($D1)*$D1/1000,100))
9.セルL1 に、4桁の左端から2番めの数字 2 を入れる数式を書き込む。
=INT(MOD(SIGN($D1)*$D1/100,10))
10.セルM1 に、4桁の左端から3番めの数字 3 を入れる数式を書き込む。
=INT(MOD(SIGN($D1)*$D1/10,10))
11.セルN1 に、4桁の右端の数字 1 を入れる数式を書き込む。
=INT(MOD(SIGN($D1)*$D1/1,10))
これで結果はオーライなのだが、一度限りの操作と違い、繰り返し使うマクロでは、どこかで回りくどく余分なことをさせておくのは感心しない。
まだ追究の余地はありそうだ。