|
考え方で大きくふたつあります。
まず、単純に「1日」「2日」という文字列をセルに入れたいということであれば、
Dim i as Integer
For i = 1 to 31
Cells(5 + i, i) = i & "日"
Next i
のようにすればいいです。
i & "日" で、数字+「日」になります。
示されたコードではわざわざwを使っていますが、これは不要でしょう。
ただし、これだと入力した情報が文字列として扱われ、計算するための数字として使えません。
(「1日」というデータに対して+1しても「2日」とはできません)
計算に使いたいのであれば、上記のコードで「 & "日"」の部分を除き、
VBAではなくエクセルのシート上でセルの書式を「0日」としてください。
それなら、内容としてはただの数字だが、表示は「1日」のように表示されます。
なお、示されたコードでいくつか気になることがあります。
まず、変数 iを使っているのに、それを宣言しているところがありません。
設定で変数の宣言を強制するようにしていなければこれでも動きますが、バグの元になるので、変数の宣言は強制するようにしておいた方がいいでしょう。
また、変数aとwの型をByte型にしているのも気になります。
小さな数字を入れるのだからByte型でいいだろうということなのかもしれませんが、一般的にByte型を使う場合にはそれなりに理由があり、整数を扱うのであれば通常はInteger型かLongを使います。
ForループでStep 1とするのも無意味ですね。
Step 1は書かなくてもForループでは1ずつ増えるようになっていますし、1以外ずつ増えたり減ったりする場合だけ記述すればいいです。
|
|