Excel操作

解決


ぽこたん  2007-05-16 19:18:56  No: 98766

こんにちは。

今回、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関数にてコメントアウトした部分の処理の実装方法
を教えていただけたらと思います。

初歩的なことで申し訳ありません。
よろしくお願い致します。


Blue  2007-05-16 20:42:24  No: 98767

とりあえず、Excelの「マクロの記録」機能を使って
ある程度どのようなメソッドを使うのか調べてみてはどうでしょうか?

たとえば
> 'ワークシート名を"1"に変更
だったら

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2007/5/16  ユーザー名 : Blue
'

'
    Sheets("Sheet1").Select
    Sheets("Sheet1").Name = "1"
End Sub

のようなコードが自動生成されるので、
シートオブジェクトのNameプロパティを使えばいいことがわかります。


ぽこたん  2007-05-16 22:41:49  No: 98768

>Blueさん

教えてくださってどうもありがとうございました。
マクロの記録機能を使っていろいろ調べてみたいと
思います。


ぽこたん  2007-05-17 00:44:36  No: 98769

以下の方法でシートをコピーできました。
基本的な事項かもしれないのですが、自分は検索に苦労したので
書き込むことにしました。

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")の右に新規ブックを
'  挿入し、貼り付け
'  (列幅等もコピーできました。)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加