• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELにデータを出力する際、同一名のブックを開いていないかチェックしたい。)

EXCELにデータを出力する際、同一名のブックのチェック方法について

このQ&Aのポイント
  • VBフォーム上に配置した「Excel出力」ボタンを押下すると、指定の形式のExcelファイルにデータを展開し、別名で保存する処理を行っています。しかし、処理を開始する前に、現在表示中の同名のExcelファイルが存在するかどうかをチェックしたいと考えています。表示中の場合はエラーメッセージを表示させることでユーザーに分かりやすく伝えたいです。
  • VBで1年間程度の経験がある初心者です。VBフォーム上に「Excel出力」ボタンを配置し、あらかじめ用意した特定のExcelフォーマットにデータを展開し、別名で保存する処理を実装しています。しかし、同名のExcelファイルが既に表示されている場合にエラーメッセージを表示させる方法が分からず、他のメンバーにアドバイスを求めています。
  • VBフォーム上に配置した「Excel出力」ボタンを押下すると、指定のフォーマットに従ってデータが展開され、別名で保存されます。しかし、処理を開始する前に、同名のExcelファイルが既に表示中でないかどうかをチェックしたいと考えています。表示中の場合はエラーメッセージを表示させることで、ユーザーに問題が発生していることを明示したいです。修正が緊急のため、アドバイスをいただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

Private Sub Cmd1_Click()   On Error Resume Next   Dim myFilename As String   Dim myfile   As String   myFilename = "C:\フルパス\2005年A.xls"  'ファイルをフルパスで指定してください。   myfile = Dir$(myFilename)   If Len(myfile) = 0 Then     MsgBox "ファイルが存在しません。"   Else     Name myFilename As myFilename   'ファイルが使用中であればエラーが発生します     If Err.Number Then       MsgBox "ファイル使用中です。"       Err.Clear     Else       MsgBox "ファイル使用されていません。"     End If   End If End Sub 簡単ですがこんな感じでどうでしょうか

noname#168928
質問者

お礼

O_cyanさん、ありがとうございます。 上記サンプルソースにて正常に希望どおりの 動作を行えるようになりました。 本当に助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kikaida-
  • ベストアンサー率69% (37/53)
回答No.3

Dim x As Excel.Workbooks Dim i As Long Set x = Excel.Workbooks For i = 1 To x.Count   if x(i).FullName = "c:\...\2005年A.xls" then     'ファイルを開いているときの処理     exit for   end if Next i set x=nothing

noname#168928
質問者

お礼

kikaida-さん、ありがとうございました。 VBについては、素人ですので、また機会がありましたら いろいろ教えてください。

全文を見る
すると、全ての回答が全文表示されます。
  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.1

こんにちは、じゃんぬねっと と申します。 以下のリンクが参考になるかと思います。 http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=10307&no=0

noname#168928
質問者

お礼

じゃんぬめっとさん、ありがとうございました。 また、質問することがあると思いますのでよろしく お願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelのブック名の変更

    VB.NET 2002でEXCELにDBの内容を書き出す処理をしています。 エクセルのテンプレートで雛形を作り、 xls_Book = xls_App.Workbooks.Add(CurDir() & "\テンプレート.xlt") で開いています。 エクセルをVisible=Trueにすると、ブック名が「テンプレート1」と表示 され、ブック名を変えたいのですが可能でしょうか? 良い方法がありましたら、よろしく お願いします。

  • Excelに出力したいのですが

    vb.netで作ったフォームに入力したものをボタン一つでExcelに出力したいのですが、どのように作って良いのかわかりません。 簡単に解説をしているページとかありませんでしょうか? 知っている方がいたら教えてください。 お願いします。

  • ACCESSのクエリーからエクセル出力

    ACCESSのクエリーからエクセル出力する方法を探しています。 フォームのボタン押下⇒保存先選択画面表示⇒エクセル出力 という手順を考えていますが、 テーブルをそのまま(保存先も直書き)出力するサンプルは見つかるのですが上記のようなものは見つけられません。 どこかいいサイト、もしくはサンプルなどありませんでしょうか?

  • VB2008 エクセル出力

    VB2008 エクセル出力 教えていただけると助かります VB6.0使用時にエクセル出力をするために下記のようなプログラムで出力していました ※「Microsoft Excel 9.0 Object Library」を参照 Dim xlApp As EXCEL.Application Dim xlBook As EXCEL.Workbook Dim xlsheet As EXCEL.Worksheet Dim File As String File = App.Path + "\EXCEL\" + "フォーム.xls" Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(File) Set xlsheet = xlBook.Worksheets("テスト") xlsheet.Range("A1") = "テスト" 'フォルダ作成 If Dir("D:\", vbDirectory) = "" Then Call Mkdirs("D:\テスト") 'Worksheetを名前をつけて保存します。 xlApp.DisplayAlerts = False xlsheet.SaveAs "D:\テスト\テスト.xls" xlApp.Quit Set xlApp = Nothing Set xlBook = Nothing Set xlsheet = Nothing VB2008の場合だとどのように書けば同じように動きますか ※色々試してみましたがダメでした 「Microsoft Excel 12.0 Object Library」を参照しています

  • VB2008 Excelにデータ出力

    VB2008で、Timerで更新されるTextBoxの数値をExcelに順次出力する(セルA1に出力したら、次の値をA2に出力、・・・)プログラムを作りたいのですが、どんなソースにすればよいか分かりません。 Web検索もしましたが、キーワードが悪かったのか、適したサンプルも見つかりませんでした。 VB Form上のTimerでTextBoxの数値を更新する部分はできていますので、指定のフォルダ内のExcelを開いてデータをセルに出力する方法を教えてください。 参考URLなどもあれば教えてください

  • AccessのデータをExcelの決まったフォーマットに出力するには?

    Access2002を使っています。 社員マスターテーブルがあります。 フィールドは「社員番号」「氏名」「かな」「年齢」があります。 クエリで対象になるデータを抽出し、それをExcelの決まったフォーマットに出力させたいです。 希望はフォーム上にマクロのボタンを作ってそれをクリックするとエクセルの決まったフォーマットにデータが出力されるようにしたいのです。 お手数をおかけいたしますが、よろしくご指導ください。_(_^_

  • VB2005でのエクセルへのデータ出力

    タイトルどおりなのですが、DBからマスタのデータを単純にエクセルに出力するだけなのですが、どういったやり方が一番高速に処理できるのでしょうか? マスタのデータをデータテーブルに取得して、データテーブルをループさせながら、1レコードごとにエクセルに出力するようなやり方しか思いつかないのですが、もっと効率的で高速に処理できる方法があれば教えて下さい。 ちなみに、エクセルは新規ファイルではなく1行目にマスタのテーブルのカラム名を記述している既存ファイルのエクセルに出力していく形になります。 画面の動作としては、マスタメンテの画面にある「出力」ボタンをクリックすることで、ファイルダイアログを表示して保存先を決めたら、出力開始というイメージです。 できれば、サンプルコードなどあれば有難いです。 宜しく、お願いします。 開発環境: OS:WinXP SP2 DB:Oracle 10g(?)、すみません。バージョンまであってるかは不明です。 言語:VB2005Pro Excel:Excel2000

  • エクセルVBA ブック出力方法について

    いつもお世話になっております。 エクセルVBA@初心者です。 エクセルシート内のある特定の場所(今回であれば、B3:L19)の情報をデスクトップ上にブック出力したいのですが、可能でしょうか。可能である場合、出力方法をご教示いただけないでしょうか。 *出力ファイルは、「連絡書.xls」という名前で出力したいです。 *出力ファイル内に、出力元ファイル(B3:L19)の情報がA1:K17に書き出されるようにされたいです。 *以上の条件の満たされているシンプルなつくりなもので問題ありません。

  • サブフォームのデータを「OfficeLink→Excelに出力」したい

    フォームにサブフォームを設置しデータシートビューにしているのですが その状態で OfficeLink→Excelに出力をしても 新たなブックができあがり、フォーム1と言う名のシートができあがりますが データは空です。 親フォームを立ち上げないで サブフォームのみ開き OfficeLink→Excelをすると ちゃんとデータが表示されます。 親フォームを開いた状態のまま サブフォームのデータを OfficeLink→Excelに出力 するにはどうすればいいでしょうか? よろしくお願いします。

  • VBからエクセル形式の出力はできますか?

    Visual Basic .NET (VB6でも可)を使用してCSV形式では出力できるのですが、xls形式で出力はできませんか。 セルの結合や、罫線処理といったエクセルの機能が使いたいのです。 調べて見ると[Visual Studio Tools for Office]というものがMicrosoftから販売されていますが、このツールを 使用しないことには作成は不可能なんでしょうか? ご存知の方がいらっしゃれば教えてください。 現在はVBAを使用していますが、.NETアプリとして作成して見たいと思ったので。 ・VBではできないがC#ではできる。なんて事があればその方法でも構いません。 Visual Studio .NET 2003 Professional