VBでのエクセルのワークシートのコピーの仕方



▲このページのトップに戻る
427466VBでのエクセルのワークシートのコピーの仕方RX-8改 2007/10/30-09:49

メーカー名:DELL デル
OS名:WindowsXp HomeEdition
パソコン名:LATITUDE D520
--
自分は、現在VBで、エクセルを操作するプログラムを作っているのですが、
VBでエクセルのワークシートをコピーする操作がうまくいきません。
プログラムは下記のようになっています。

<プログラム内容>
Dim i1 As Integer
Dim b1 As Boolean
Dim s1 As String
Dim s2 As String

Dim xlBook As Object

Dim obj As Object
Dim WrkNam As String

' エクセルファイルを開く
Set xlBook = GetObject(CurDir + "\テスト用.xls")

' ワークブックウィンドウを可視にする
xlBook.Windows(1).Visible = True

' エクセルアプリを表示する
'xlBook.application.Visible = True  …(あ)

' 更新するワークシート名を作成
WrkNam = "テスト用シート"

' 更新するワークシートの存在チェック
b1 = False
For Each obj In xlBook.worksheets
If obj.Name = WrkNam Then
s1 = "あったよ!ワークシート"
b1 = True
End If
Next
If b1 = False Then ' 更新するワークシートが存在しなければ
xlBook.worksheets(xlBook.worksheets.Count).Copy After:=xlBook.worksheets(xlBook.worksheets.Count) …(い)
xlBook.worksheets(xlBook.worksheets.Count).Name = WrkNam
s1 = "なかったよ!ワークシート"
End If

' 更新するワークシートをアクティブにする
xlBook.worksheets(WrkNam).Activate

  ' テスト用のメッセージ表示
xlBook.worksheets(WrkNam).cells(1, 1).Value = s1

' ファイルを保存
xlBook.Save

' 終了メッセージ表示
Text1.Text = "処理終了!"

処理の内容は、既存のエクセルファイルを開き、
その中から、【テスト用シート】という名前のワークシートを検索します。
ワークシートがあれば、そのワークシートに『あったよ!ワークシート』と
表示し、なければ、既存のワークシートの最後のワークシートを最後尾に
コピーすることで、新規にワークシートを作成して、名前を【テスト用シート】と
し、『なかったよ!ワークシート』と表示します。

このときの問題点が、【テスト用シート】ワークシートが存在せず、
ワークシートをコピーする際の処理です。

プログラム中(あ)の部分の注釈を外して、エクセルアプリを
表示させていると、ワークシートのコピー処理はうまく動くのですが、
注釈文として、エクセルアプリを表示させていない状態だと、
プログラム中(い)の部分でエラーが発生するのです。

自分としては、エクセルを表示していても、いなくても、
ワークシートのコピーができるようにしたいのですが、
どのようにすれば良いでしょうか?


A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言