• 締切済み

EXCELの操作

以下、VBScriptを使って、EXCELのセル(A1)にブラウザのフォーム内容を書き込むプロシージャです。 ここで「すでにこのシートが開かれていたらいったん閉じて、再び同シートを開いて書き込む」 という指示を追加したいときは、どのような文が必要でしょうか。 dim objXL sub openExcel set objXL = GetObject("ファイル名") objXL.application.window(1).visible = true objXL.application.visible = true call writeToSheet end sub sub writeToSheet dim sht set sht = objXL.sheets(1) dim frm set frm = Document.forms("フォーム名") sht.range("a1").value = frm.elements("エレメント名").value end sub

みんなの回答

回答No.2

問答無用で開き直すというのはダメでしょうか(^^;) Set objXL = GetObject("ファイル名").Application objXL.DisplayAlerts = false objXL.Workbooks.Open "ファイル名" objXL.DisplayAlerts = true objXL.Windows(1).Visible = true objXL.Visible = true

masa1214
質問者

お礼

参考になりました。ありがとうございました。

  • VT250F
  • ベストアンサー率30% (26/84)
回答No.1

ブックが開かれているかどうかは以下の関数を作ればでわかりますので、 参考にして下さい。 そのシートを開いているかどうかは、アクティブなシート名を求める関数がエクセル側にあったと思います。エクセルのヘルプで調べて見て下さい。 シートを閉じるならクイットだか、クローズだかのメソッドを呼べばいいと思います。確か保存の問い合わせをどうするかと言うオプション指定もあったははずですよ。 Private Sub Form_Load() Dim wkReturn As Boolean wkReturn = FileChk("ファイル名のフルパスを指定します") If wkReturn = True Then Debug.Print "使用中" Else Debug.Print "未使用" End If End End Sub 'ファイルが使用されているかチェックする Private Function FileChk(pFilePath As String) As Boolean On Error GoTo ER_FileChk Open pFilePath For Input Access Read Lock Read As #1 Close #1 Exit Function ER_FileChk: FileChk = True End Function

masa1214
質問者

お礼

参考になりました。ありがとうございました。

関連するQ&A