ここから本文です

VBscriptについての質問

hpf********さん

2011/1/2213:44:59

VBscriptについての質問

前回こちらで教えて頂きました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1152383796
セルのコピー空白行を埋めて降順に並び変えることができ重宝しています。

lastRow = sheet1.Cells(sheet1.Rows.Count, "G").End(xlUp).Row
For r = 1 To lastRow
If sheet1.Cells(r, "G").Value <> "" Then
If sheet1.Cells(r, "C").Value <> "" Then columnC = sheet1.Cells(r, "C").Value
If sheet1.Cells(r, "E").Value <> "" Then columnE = sheet1.Cells(r, "E").Value
sheet2.Cells(r, "A").Value = columnC
sheet2.Cells(r, "C").Value = columnE
sheet2.Cells(r, "I").Value = sheet1.Cells(r, "G").Value
sheet2.Cells(r, "F").Value = sheet1.Cells(r, "I").Value
End If
Next
book.Close True
xls.Quit

前回の結果は降順となり貼り付けされますが、上記の場合ですと昇順で貼り付けれます。
但し空白行が入ってしまいます。

今回やってみたいことは、
昇順で貼り付け空白行の場合は無視。
添付ファイルのように詰めてコピーしたいのですが、どうすればよいのでしょうか。

If sheet1.Cells,Sheet2.Cells,g&amp;quot,C&amp;quot,E&amp;quot,&#39;Sheet2

閲覧数:
227
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

hot********さん

編集あり2011/1/2304:58:28

なんだか画像とプログラムの列位置の対応が違うような気がしますがそれは別にして・・・

rが両方のSheetで行番号のため、Sheet1で空白行がある行はSheet2でも空白行になってしまうと思います。
(前のプログラムでは sheet1のCells(r, "G").Value <> "" ならsheet2のRows(1).Insertしているので、空白行ができない)

というわけで、Sheet1の注目行を表わすrとSheet2でのコピー先の行が同じではないので、別にr2を用意します。

Dim r2 '(他の変数の宣言位置で)
lastRow = sheet1.Cells(sheet1.Rows.Count, "G").End(xlUp).Row
r2 = 1 'sheet2の出力行の初期値
For r = 1 To lastRow
If sheet1.Cells(r, "G").Value <> "" Then
If sheet1.Cells(r, "C").Value <> "" Then columnC = sheet1.Cells(r, "C").Value
If sheet1.Cells(r, "E").Value <> "" Then columnE = sheet1.Cells(r, "E").Value
sheet2.Cells(r2, "A").Value = columnC '以下はSheet2のr2行に出力
sheet2.Cells(r2, "C").Value = columnE
sheet2.Cells(r2, "I").Value = sheet1.Cells(r, "G").Value
sheet2.Cells(r2, "F").Value = sheet1.Cells(r, "I").Value
r2 = r2 + 1 'sheet2の出力行+1
End If
Next
book.Close True
xls.Quit

質問した人からのコメント

2011/1/25 09:55:50

笑う hotosys様
今回もありがとうございます。解りやすい解説までつけて頂き感謝です。
誤った画像を使ってしまいました。すみません。
おかげさまで完成度の高いものが出来ました。もっとよりよいもの目指してがんばります!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる