こんにちは。
今回、VB6からExcelファイルを作成し、操作する処理を行っている
のですが、シートのコピーがうまくできず、苦戦しています。
コードは以下です。
private function Create()
dim objExlApp as object
dim objExlBook as object
dim objExlSheet as object
'Excelオブジェクト作成
set objExlApp = CreateObject("Excel.Application")
set objExlBook = objExlApp.workbooks.Open(ExlPath & "\" & ExlName)
set objExlSheet = objExlBook.worksheets(1)
end function
private function CreateObject(ByVal APP as object) as boolean
'ワークシート名を"1"に変更
'新規ワークシート作成
'新規ワークシート名を"2"に変更
'ワークシート("1")のセルの幅、行等、全ての条件をコピー
'ワークシート("2")に貼り付け
end function
いろいろ調べて試してみたのですが、エラーが出てしまい、
うまくいきません。
CreateObject関数にてコメントアウトした部分の処理の実装方法
を教えていただけたらと思います。
初歩的なことで申し訳ありません。
よろしくお願い致します。
とりあえず、Excelの「マクロの記録」機能を使って
ある程度どのようなメソッドを使うのか調べてみてはどうでしょうか?
たとえば
> 'ワークシート名を"1"に変更
だったら
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2007/5/16 ユーザー名 : Blue
'
'
Sheets("Sheet1").Select
Sheets("Sheet1").Name = "1"
End Sub
のようなコードが自動生成されるので、
シートオブジェクトのNameプロパティを使えばいいことがわかります。
>Blueさん
教えてくださってどうもありがとうございました。
マクロの記録機能を使っていろいろ調べてみたいと
思います。
以下の方法でシートをコピーできました。
基本的な事項かもしれないのですが、自分は検索に苦労したので
書き込むことにしました。
dim objExlBook as object
dim objExlSheet as object
set objExlBook = objExlApp.workbooks.Open(ExlPath & "\" & ExlName)
set objExlSheet = objExlBook.worksheets(1)
with objExlBook.worksheets(1)
.Name = "1"
end with
objExlBook.worksheets("1").Copy after:=objExlBook.worksheets("1")
'↑worksheets("1")をコピーして、worksheets("1")の右に新規ブックを
' 挿入し、貼り付け
' (列幅等もコピーできました。)
ツイート | ![]() |