エクセルのシートをcsvファイルに出力する際、値の入った500行程度だけを出力したいです。
しかし、値の入ってない8000行が出力されてしまいます。
どうすれば良いでしょうか?
出力する手順は以下の通りです。
Sheet2のA列にはあらかじめ8000行まで文字列連結の計算式が入っている。
ボタンを押すとSheet1のA列とB列をSheet2のB列とC列にコピペする。Sheet2のA列はB列とC列の文字列を連結した文字列になる。続けて自動的にSheet2のA列をコピーしてSheet3に値として貼り付ける。続けて自動的にSheet3をcsvファイルとして出力する。すると、Sheet3の500~8000行は空なのに、csvファイルは8000行まで出力されてしまう。
Sheet1のA列には500行程度しか値は入っていない、将来、拡張したときのためにSheet2のA列には8000行まで計算式を入れてある。
よろしくお願い致します。
確認用にやっていることを簡略化したソースコードを掲載します。
Sheet2に入ってる文字列を連結する計算式です。(A1~A10に入ってます。)
マクロのソースコードです。
Sub Macro1() Columns("A:B").Select Selection.Copy Sheets("Sheet2").Select Columns("B:B").Select ActiveSheet.Paste Columns("A:A").Select Application.CutCopyMode = False Selection.Copy Range("C14:D16").Select Sheets("Sheet3").Select Columns("A:A").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Columns("C:C").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet3").Select Columns("B:B").Select ActiveSheet.Paste Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:="C:\test\Sheet3.csv", FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.SaveAs Filename:="C:\test\test.xlsm", FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False End Sub
出力されたcsvファイルの中身です。
(1~5行まで出力したいのに10行出力されてしまう。)
a1b1,c1
a2b2,c2
a3b3,c3
a4b4,c4
a5b5,c5
,
,
,
,
,
回答2件
あなたの回答
tips
プレビュー