| ■No86520 (mako さん) に返信 > ■No86518 (shu さん) に返信 > >>例えば >> ret.Rows.Add(x, DBNull.Value, DBNull.Value, DBNull.Value) : x += 5 >> ret.Rows.Add(x, d, row("数量1"), row("数量2")) : x += 5 >>とした場合、どのようになるかわかりますか? >>その状態と実際に行いたいこととの差が何なのかはっきりさせるとなんとかならないでしょうか? > > If Not isFirst2 Then > Dim rowItm As Object = Nothing > Dim row = rowItm.r > Dim d = rowItm.d > For i = 1 To 2 > 'ret.Rows.Add(x, DBNull.Value, DBNull.Value, DBNull.Value) : x += 5 > 'ret.Rows.Add(x, d, row("数量1"), row("数量2")) : x += 5 > ret.Rows.Add(x, d, row("数量1"), row("数量2"), row("マーク")) > Next > End If > isFirst2 = False > > この書き方ではおかしいのですよね? > Dim row = rowItm.r で 「System.NullReferenceException: 'オブジェクト変数または With ブロック変数が設定されていません。」のエラーが出ます。 >
それはどんな処理になりますか?処理内容を考えてプログラムを行わないと動くわけありません。
私が提示したコードで気になるのが空白部分ということでしたよね?まずは空白いれる処理を外してみて下さい。
各ポイントの追加前に無条件で空白を入れる処理を行ってみて下さい。
空白を入れるタイミングを条件を追加することにより制御してみて下さい。
|