• 締切済み

VBAにてEXCEL以外のファイル(テキストなど)がすでに開いているかの確認方法

はじめまして。EXCELのVBAについてアドバイスをお願いします。 EXCELファイル以外のTEXTやCSVファイルなどが、すでに開かれているかを確認する方法はありますでしょうか。 EXCELシートのデータをCSVファイルに移動させるような処理を実施したいのですが、そのCSVファイルがすでに開かれているファイルである場合、 Open ファイル名 For Output As #1 を発行したところでエラーが発生してしまいます。 [on error resume next] での対応方法はありますが、できれば、GOTO文的な方法はとらない方法が取れればありがたいです。 事前にそのファイルが開かれているかをチェックできる方法などアドバイスを頂戴できたらと存じます よろしくお願いいたします。

みんなの回答

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

関連するQ&A

  • Excel 2010 VBA:ファイル名を読み込む

    下は複数のcsvファイルを一つに合体するVBAです。これにシートの右端に読み取ったファイル名を追加するにはどうしたらよいでしょうか。 よろしくお願いします。 Sub macro1() Dim myPath As String Dim myFile As String Dim s As String myPath = ThisWorkbook.Path & "\" On Error Resume Next Kill myPath & "合体版.csv" On Error GoTo 0 myFile = Dir(myPath & "*.csv") If myFile = "" Then Exit Sub Open myPath & "合体版.csv" For Output As #1 Do Until myFile = "" Open myPath & myFile For Input As #2 Do Until EOF(2) Line Input #2, s Print #1, s Loop Close #2 myFile = Dir() Loop Close #1 End Sub

  • EXCEL2000 VBA CSVファイルの読み込み

    エクセル2000です。 VBAでCSVファイルを読み込もうとしているのですが、CSVファイルの一部に改行コード[*]が入っています。 そのまま読み込んだ場合、エクセルの中では改行されません。CSVファイル(文字列)を精査していって、[*]があれば、VBでの改行コードChr(10)に変換する方法でいけるのでしょうか。 Workbooks.Open   Filename:="C:\temp\sample.csv" Range("A2:J901").Select このsample.csvの中身を変換したいのですが。 よろしくお願いします。

  • VBAでCSVファイルが使用中かどうかの確認

    お世話になっております。 Excel VBA についてご質問します。 今、VBAでCSVファイルを作成してデータ管理を行うソフトを作成しております。 このソフトは、共有をかけて複数の人で使用するため同じCSVファイルに同時にアクセスする可能性があります。そのため、CSVファイルに混同したデータが書き込まれてしまう恐れがあります。 そこで、CSVファイルがオープン中または、アクセス中が認識できる命令等はないでしょうか? よろしくお願いします。

  • VBAでテキストファイルを保存

    VBAでテキストファイルを保存したいのですが、EUCで保存できません。 EUCで保存するにはどうしたらいいのでしょうか? Open myFile For Output As #myNo です。

  • VBAでcsvファイルを読み込み、更新する方法

    こんにちは。早速ですが、質問です。 VBAを使ってcsvファイルをエクセルに読み込んで、 読み込んだエクセル上でcsvファイル情報を変更すると、 変更した内容が読み込み元のcsvファイルに更新される ようなプログラムを作りたいのです。csvファイルの 読み込みまではうまくいったのですが、csvファイルの 更新の仕方がわかりません。良い方法があれば、 教えてください。よろしくお願いします。

  • access VBAでのファイル読み込みとその保存方法

    昨日も質問させていただいたVBA初心者です。 いろいろ調べましたが解決しなかったので、 またまた質問させていただきます。 ファイルを読み込んで、それを別ファイルに保存したいのですが、 下記ですと、1行のみ保存されるだけでした。 この方法ですと、すべて保存されるはずと書かれていたのですが。 全くどこが悪いのか分かりません、よろしくお願いします。 Private Sub cmd_Click() On Error GoTo Err_cmd_Click Dim ReadFileName As String Dim Contents As String Dim WriteFileName As String ReadFileName = "P:\dl_engine\logs1\service\20020223" ' ファイルを読み込む Open ReadFileName For Input As #1 Input #1, Contents Close #1 WriteFileName = "C:\Contents\data\Melody.csv" ' ファイルに保存 Open WriteFileName For Output As #2 Write #2, Contents Close #2 '正常終了 Exit_cmd_Click: Exit Sub 'エラー処理 Err_cmd_Click: Beep Select Case Err.Number Case Else MsgBox Err.Number & ":" & Err.Description End Select Resume Next End Sub

  • Excel VBAにてCSVファイルを読みたい

    ExcelにてCSVファイルを読んで処理をしたい。 ただし、CSVファイルをExcelでopenすると遅いので、 VBAにてファイルとして読み込みで処理をしたいのですが、 皆さんは、どのように行っていますか? ※CSVファイルは、テキスト区切り→"(ダブルコーテーション)です  テキスト区切り無しであれば、1行読んで、カンマをsplitすれば良いと思いますが。。。。

  • CSVファイルを手で開いた後VBAを動かしたい

    すみませんが教えてください Excel VBAで、SaveしてあるCSVファイルを開くのは良く見ます でも、この方法ではなくて、あるシステムから切り出してきたCSVファイル を開いた状態からVBAを動かすにはどうしたらよいでしょうか? 理由は、どうも日付データがSaveしてしまうと消えてしまうようで、 (システムから切り出したCSV・・・2013-01-06 00:00:00) (SaveしたCSVを読み出すと・・・0000-00-00 00:00:00) このためSaveしたCSVファイルを開いてVBAを動かすことができません Excel形式にしてSaveしても同様です 何かもっと良い方法がありますか?

  • (Excel)VBA ファイルパスからファイル名を求める

    Excel97のVBAで  f-name = Application.GetOpenFilename() とするとf-nameにはオープンしたファイルのパスを含めたファイル名が代入されます。 これをそのまま  Workbooks(f-name).close とすると、パス部分が余分なのかエラーになります。 そこで、このf-nameからファイル名(ブック名)だけ切り出す方法があれば教えてください。 もしくはこのオープンからクローズまでの流れとして良いやり方があれば教えてください。

  • Excel2002VBA「~のときは○○、そうではないときは何もしない」

    VBA初心者です。環境は、Excel2002で、Windows2000です。 VBAで、下記のようにしたいのですが、どうしてもいい方法を思いつきません。 どなたか、ご指導願います。 マクロ実行時にSheet2があるときは、Sheet2を削除。 ただし、ないときには何もしないで、次の処理へとぶ。 On Error GoTo を利用するのでしょうか? けれど、エラー処理へとんだ場合、どう処理したらいいのか分かりません。 どうぞよろしくお願いします。

専門家に質問してみよう