[723] 26列にある一桁の日付を二桁に27列にある一桁の月を二桁にするマクロを書いたのですが短くできませんか。
渡辺 潤 [2023/01/06 12:23:13]
26列にある一桁の日付を二桁に27列にある一桁の月を二桁にするマクロを書いたのですが短くできませんか。
別にこれでも問題はなさそうなのですが勉強のためよろしくお願いいたします。
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "1") {
[26,y] = "01";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "2") {
[26,y] = "02";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "3") {
[26,y] = "03";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "4") {
[26,y] = "04";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "5") {
[26,y] = "05";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "6") {
[26,y] = "06";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "7") {
[26,y] = "07";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "8") {
[26,y] = "08";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "9") {
[26,y] = "09";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "1") {
[27,y] = "01";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "2") {
[27,y] = "02";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "3") {
[27,y] = "03";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "4") {
[27,y] = "04";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "5") {
[27,y] = "05";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "6") {
[27,y] = "06";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "7") {
[27,y] = "07";
}
}
for (y = 1; y <= Bottom; y++) {
if ([26,y] == "8") {
[27,y] = "08";
}
}
for (y = 1; y <= Bottom; y++) {
if ([27,y] == "9") {
[27,y] = "09";
}
}
Re: [723] 26列にある一桁の日付を二桁に27列にある一桁の月を二桁にするマクロを書いたのですが短くできませんか。
あすかぜ [2023/01/06 19:14:09]
「セル内容が 1 文字であれば "0" をつけたす」と考えれば、次のように書けそうです。
for (y = 1; y <= Bottom; y++) {
if (len([26,y]) == 1) {
[26,y] = "0" + [26,y];
}
if (len([27,y]) == 1) {
[27,y] = "0" + [27,y];
}
}
また、正規表現では数字 1 文字を「\d」のように記述できるので、ReplaceAll 命令を使って次のように書くこともできます。
ReplaceAll("(\\d)", "0$1", false, true, true, 26, 1, 27, Bottom);
いかがでしょうか。
Re: [723] 26列にある一桁の日付を二桁に27列にある一桁の月を二桁にするマクロを書いたのですが短くできませんか。
渡辺 潤 [2023/01/07 11:54:11]
ありがとうございます。
どちらもうまく機能しました。
lenというのはこう使うのですね。
正規表現というのはまだよくわからないのですが、
いずれ勉強したいと思います。
またよろしくお願いいたします。