TOP > Up > Today


Date:  Tue, 30 Oct 2007 09:49:18 +0900
From:  no@ann.co.jp
Subject:  [pasml 272068] VB でのエクセルのワークシートのコピーの仕方
To:  pasml@ann.co.jp
Message-Id:  <200710300049.l9U0nIlB013804@pas2.jp>
X-Mail-Count: 272068

名前: 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 + &quot;\テスト用.xls&quot;)
    
    '  ワークブックウィンドウを可視にする
    xlBook.Windows(1).Visible = True
    
    ' エクセルアプリを表示する
    'xlBook.application.Visible = True  …(あ)
    
    ' 更新するワークシート名を作成
    WrkNam = &quot;テスト用シート&quot;
    
    ' 更新するワークシートの存在チェック
    b1 = False
    For Each obj In xlBook.worksheets
        If obj.Name = WrkNam Then
            s1 = &quot;あったよ!ワークシート&quot;
            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 = &quot;なかったよ!ワークシート&quot;
    End If
    
    ' 更新するワークシートをアクティブにする
    xlBook.worksheets(WrkNam).Activate
        
  ' テスト用のメッセージ表示
    xlBook.worksheets(WrkNam).cells(1, 1).Value = s1

    ' ファイルを保存
    xlBook.Save

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

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

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

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

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


--
== 掲示板URL: http://pasokoma.jp/bbs ==
   配信の停止: http://pasokoma.jp/taikai
   本メールマガジンへの返信はなさらないで下さい
== 投稿はパソコン困りごと掲示板でお願い致します ===
    

TOP > Up > Today