TOP > Up > Today
名前: RX-8改 BBSから
質問:http://pasokoma.jp/42/lg427466#427466
携帯:http://pasokoma.jp/m?num=427466&ope=v
--
メーカー名: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 = "処理終了!"
処理の内容は、既存のエクセルファイルを開き、
その中から、【テスト用シート】という名前のワークシートを検索します。
ワークシートがあれば、そのワークシートに『あったよ!ワークシート』と
表示し、なければ、既存のワークシートの最後のワークシートを最後尾に
コピーすることで、新規にワークシートを作成して、名前を【テスト用シート】と
し、『なかったよ!ワークシート』と表示します。
このときの問題点が、【テスト用シート】ワークシートが存在せず、
ワークシートをコピーする際の処理です。
プログラム中(あ)の部分の注釈を外して、エクセルアプリを
表示させていると、ワークシートのコピー処理はうまく動くのですが、
注釈文として、エクセルアプリを表示させていない状態だと、
プログラム中(い)の部分でエラーが発生するのです。
自分としては、エクセルを表示していても、いなくても、
ワークシートのコピーができるようにしたいのですが、
どのようにすれば良いでしょうか?
--
== 掲示板URL: http://pasokoma.jp/bbs ==
配信の停止: http://pasokoma.jp/taikai
本メールマガジンへの返信はなさらないで下さい
== 投稿はパソコン困りごと掲示板でお願い致します ===
TOP > Up > Today