- ベストアンサー
EXCEL VBAでfor~Next構文に処理を追加する方法
- EXCEL VBAでfor~Next構文の間に処理を追加する方法について教えてください。他人の作ったEXCELマクロを修正する必要がありますが、初心者のためうまくいきません。
- 質問者はEXCEL VBAで、sheet1に条件を入力し、sheet2のセルに表示された内容をラベルに印刷するマクロを作成したいと考えていますが、for~Next構文の間に処理を追加する方法がわかりません。
- もしblankの値が1の場合、内容の異なるセルを挿入したいと考えていますが、うまく実装できません。解決策を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Next iとNextKの間に If blank="1" Then 処理 End If 処理はjループの中の処理 でどうでしょう?
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
サンプル・データをおいてくれれば、もう少しわかるのですが、ちょっとゴリ押しで作った感じのコードです。「セルを差し込みたい」という表現自体は理解できないので、おそらく「違うデータを読む」というように解釈しました。 blank の値が1 なら、 For j = 1 To Maisu If blank = 1 Then '****** Else End If となりますね。 それと、 Hiduke = Worksheets("sheet1").Range("A" & k).Value これは、もし、日付が、日付シリアル値なら、Range("A" & k).Text ですね。 Koumoku + " 10^" + CStr(i) なぜ、ここだけ、「+」にしているのかよくわかりませんが、値によってはエラーが発生します。 「&」ではいけないのかな?
お礼
すいません。 自己解決しました。 単なる記述ミスでした。 いろいろご指摘ありがとうございます。
補足
質問がわかりにくくてすいません。 sheet1には 日付 | 名称 | 項目 | MIN | MAX | 枚数 | blank 11/4 | A1 | B1 | 1 | 5 | 2 | 1 11/5 | C1 | B2 | 1 | 2 | 2 | 0 と入力した場合、sheet2のラベル印刷サイズに合わせた5列のセルに 11/4 A1 |11/4 A1 |11/4 A1 |11/4 A1 |11/4 A1 | B1 10^5 |B1 10^5 |B1 10^4 |B1 10^4 |B1 10^3 | 11/4 A1 |11/4 A1 |11/4 A1 |11/4 A1 |11/4 A1 | B1 10^3 |B1 10^2 |B1 10^2 |B1 10^1 |B1 10^1 | 11/5 C1 |11/5 C1 |11/4 C1 |11/4 C1 | | B2 10^2 |B2 10^2 |B1 10^1 |B1 10^1 | | と表示されるようになっています。 これをblankの値が"1"の場合、 11/4 A1 |11/4 A1 |11/4 A1 |11/4 A1 |11/4 A1 | B1 10^5 |B1 10^5 |B1 10^4 |B1 10^4 |B1 10^3 | 11/4 A1 |11/4 A1 |11/4 A1 |11/4 A1 |11/4 A1 | B1 10^3 |B1 10^2 |B1 10^2 |B1 10^1 |B1 10^1 | 11/4 A1 |11/5 C1 |11/5 C1 |11/4 C1 |11/4 C1 | B1 blank |B2 10^2 |B2 10^2 |B1 10^1 |B1 10^1 | となるようにしたいのです。(差し込むという意味はこういうことです) 何か方法があれば、お教えください。
お礼
お礼が遅くなり申し訳ございません。 この方法はすでに試してみたのですが、なぜかkの処理が終わった最後のセルの内容が置き換わるという現象が起こってしないました。 試しにkの後に入れてみても、同じ結果になりました。 なぜか?わかりませんでしょうか?
補足
すいません。 記述ミスでした。 自己解決しました。 ありがとうございます。