この様な記述をした場合、
Dim xlApp As New Excel.Application
Dim xlSheet As Excel.Worksheet
Dim i As Integer
Dim sCount As Integer
For sCount = 0 To pCount - 1
' レコード分だけ行追加
xlSheet.Rows(i & ":" & i).Select()
xlSheet.Copy()
xlSheet.Selection.insert(Shift:=xlDown)
Next sCount
エラー文・・・xlDownは宣言されていないと表示されます。
お手数おかけしますが、御回答お願いします。
※付け足し
参照設定もExcelとOfficeを設定しています。
xldown,xlup,xlleft,xlright共に使用できません。
> xlSheet.Selection.insert(Shift:=xlDown)
括弧付きで呼んでいるという事は、このコードは VB.NET ですね。
だとしたら、
xlDown
ではなく、
Excel.XlDirection.xlDown
と書く必要があります。
ただ、Range.Insert メソッドで使うのであれば、xlDown ではなく、
xlShiftDown の方を使うべきです。
Excel の「マクロの記録」では、旧形式の xlDown が記録されますし、
値は同じなので、結果に違いはありませんが、正しくは Excel ヘルプに
あるように、 Excel.XlInsertShiftDirection.xlShiftDown であるべき場所です。
もう一つ。「オブジェクトの解放処理」が抜けおちているようです。
.NET から Excel 操作を行っているだとしたら、明示的な解放処理も必要です。
google 等で、『Marshal.ReleaseComObject Excel』というキーワードで
検索すると、解放処理の方法がわかるかと。
魔界の仮面弁士様
ご対応ありがとうございました。
感激いたしました。
オブジェクトの開放処理についても、
調査を行わせていただきます。
本当にありがとうございました。
ツイート | ![]() |