タイトル : Re^4: Excel処理の繰り返しでNG 投稿日 : 2010/02/14(Sun) 08:14 投稿者 : ぽよ〜ん
魔界の仮面弁士様、アドバイス有難う御座います。 挿入の部分は、その都度変化するので以前のままでもと思いますが、 ラインを引く部分は、自動のマクロから取ったままなので冗長だったかも知れませんね。 1行で目的の処理が出来るならこの方が宜しいようですので、参考にさせて頂きます。 > xlSheet.Range("B15:E15").Borders(xlEdgeBottom).LineStyle = xlDouble で、またまた挿入で思った処理が出来ずに悩んでしまいました。 Private Sub Command1_Click() Dim i As Integer Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Open(App.Path & "\xlTestFile.xls") Set xlSheet = xlBook.Worksheets("Sheet1") 'xlTestFile.xls は予め用意をしておく 'B5:E10 まで格子状に罫線を引いただけのファイルで保存しておく On Error Resume Next ' Excel画面を非表示にして実行 xlApp.Visible = True With xlSheet .Activate With .Range("10:10") ’このような書き方のほうがスピードアップする? For i = 1 To 5 .Select .Copy .Insert Shift:=xlDown Next End With End With '前回と同じく、1回目はOKなのですが、2回目以降が旨く処理されない ' xlSheet.Copy After:=Sheets(1) '別の書き方でも試したが結果は同じ With xlBook.Sheets("Sheet1") .Select .Copy After:=Sheets(1) End With 'シートをコピーしてそのシート内で色々な処理を行なう 'オブジェクトの宣言と開放がやはり必要なのかな? 'Set NewxlSheet = xlBook.Worksheets("Sheet1(1)") とか・・・? '旨く出来なかったけど・・・根本的なところが理解してないのかな〜 'これも1回目は目的の処理をしてくれますが、2回目以降はコピーされない '元のSheet1内にデーターが書かれてしまう With xlBook.Sheets.Application .ActiveSheet.Activate .Range("B5").Value = 1234 End With '保存時の問合せを非表示に設定 xlApp.DisplayAlerts = False ' オブジェクトを解放します。 Set xlSheet = Nothing xlBook.Close 'Book を閉じる Set xlBook = Nothing ' Quit メソッドを使って Excel を終了します。 xlApp.Quit Set xlApp = Nothing End Sub Private Sub Command2_Click() End End Sub また長くて済みません。 要は、そのシートをコピーしてその中で処理をしたいだけなのですが、色々と書き方を 換えながら動きを見ているのですが、思った処理が出来ていません。 アドバイスなど頂けたら幸いです。皆様、宜しくお願い致します。 |