tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルVBからExcelの行を削除したい
記事No12476
投稿日: 2008/06/09(Mon) 17:14
投稿者RRI
VBからの操作で、Excelにデータを送り込むプログラムを作っているのですが
データ入力が完了した次の行から最終行(Excelシート自体の)まで削除するのには
どうしたらいいのでしょうか?
マクロを記録してやってみましたがうまく動きません。

たとえば10行目以降の行を削除したい場合、
マクロ記録だと
    
Rows("10:10").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp

これを応用してVB仕様にすれば出来るのでしょうか?
ご教授お願いします><

[ツリー表示へ]
タイトルRe: VBからExcelの行を削除したい
記事No12480
投稿日: 2008/06/09(Mon) 20:41
投稿者花ちゃん
> これを応用してVB仕様にすれば出来るのでしょうか?

できます。(質問する前に試してみては。)
ここのサンプル投稿用掲示板やExcel&Word関係等も参照の事。
(Excel 操作ワンポイントテクニック集(VB6.0 基本編))

[ツリー表示へ]
タイトルRe^2: VBからExcelの行を削除したい
記事No12487
投稿日: 2008/06/10(Tue) 09:32
投稿者RRI
> > これを応用してVB仕様にすれば出来るのでしょうか?
>
> できます。(質問する前に試してみては。)

試したので投稿しました。当然のことだと思うのですが。


> ここのサンプル投稿用掲示板やExcel&Word関係等も参照の事。
> (Excel 操作ワンポイントテクニック集(VB6.0 基本編))

もちろん拝見させて頂きました。
一行の削除は分かりましたが、複数行(というか、いっそのこと以下全て)
の範囲指定のやり方がわからないので質問させていただきました。

[ツリー表示へ]
タイトルRe^3: VBからExcelの行を削除したい
記事No12497
投稿日: 2008/06/10(Tue) 10:58
投稿者花ちゃん

> 一行の削除は分かりましたが、複数行(というか、いっそのこと以下全て)
一行削除を繰り返してもできますよ

> の範囲指定のやり方がわからないので質問させていただきました。
Excel で範囲を選択するマクロを記録して見てみれば。

貴方がとったマクロは、10行目だけの削除の場合ではなかったのですか。


http://www.hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=128&no=11

[ツリー表示へ]
タイトルRe^4: VBからExcelの行を削除したい
記事No12498
投稿日: 2008/06/10(Tue) 11:37
投稿者RRI
>一行削除を繰り返してもできますよ
ループさせて一行ずつ削除する方法は分かりました。
でも、それではあまりにも非効率だと思いましたので。

> Excel で範囲を選択するマクロを記録して見てみれば。
もちろん範囲選択したマクロも記録してみました。

> 貴方がとったマクロは、10行目だけの削除の場合ではなかったのですか。
違いますよ。マクロを理解されていなかったのですか?
10行目を選択した後にExcelの最終行まで選択してます。
Range(Selection, Selection.End(xlDown)).Select
それから削除を行っています。
Selection.Delete Shift:=xlUp

これで記録マクロをご理解して頂けましたでしょうか?
説明不足でしたね。すみません。

[ツリー表示へ]
タイトルRe^5: VBからExcelの行を削除したい
記事No12500
投稿日: 2008/06/10(Tue) 13:09
投稿者花ちゃん
> 違いますよ。マクロを理解されていなかったのですか?

それは、失礼しました。

> 10行目を選択した後にExcelの最終行まで選択してます。
> Range(Selection, Selection.End(xlDown)).Select
> それから削除を行っています。
> Selection.Delete Shift:=xlUp

下記のように書かれていたので
>範囲指定のやり方がわからないので質問させていただきました
記録したマクロに記載されているのに解らないとは...。?

10行目から1000行目までを削除
xlSheet.Range("10:1000").Delete

10行目から入力最終行までを削除(何も入力されていない行を削除する必要がないので)
xlSheet.Range("10:" & xlSheet.Cells.SpecialCells(xlCellTypeLastCell).Row).Delete

[ツリー表示へ]