• ベストアンサー

ファイルを開く

ファイルを開く時にファイルが開かれている時に エラーメッセージを出したいのですが、 Open "D:\test.txt" For Append As #1と記述しても エラーが出てくれません。 エクセルファイルで Open "D:\test.xlsx" For Append As #1だと エラーメッセージが出ます。 テキストファイルはエラーメッセージが出ないのでしょうか?

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>テキストファイルはエラーメッセージが出ないのでしょうか? メモ帳で同じファイルを幾つも開けるように、エラーメッセージは出ません >ファイルを開く時にファイルが開かれている時に >エラーメッセージを出したいのですが、 VBAですがAPIを使ってメモ帳で同じタイトルのウィンドウが開かれているか確認は出来ます。 Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Sub Test()   If FindWindow("NOTEPAD", "test.txt - メモ帳") <> 0 Then     MsgBox "test.txtは、メモ帳で開かれています。"     Exit Sub   End If   Open "D:\test.txt" For Append As #1

その他の回答 (1)

  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.1

確認したわけではありません 文書ファイルだからといった原因ではなくて ファイル開いているソフトの問題ではないかと 両方同じエディタ(ソフト)で開いた状態で試してみてください 例) 両方メモ帳で開くとエラーにならないんでは?    ※ まともにデータが読めないとか言ったのは別の話なので気にしない

関連するQ&A

  • エクセルにてテキストファイル読み込みでエラー  

    いつもお世話になっております。 テキストファイル (test.txt)をエクセルマクロにてセルへの読み込みを したいのですが、なぜか エラーになります。 Cells(n, 1) = buf  でエラーのようです。 理由がわかりません。 教えてもらえないでしょうか 普通の文章なら読み込みできるのですが =  を使っているとエラーがでるようです。 test.txtの画像を添付します。 エクセルのマクロの内容は次の通り Sub テキストファイルをセルに転記() Dim buf As String, n As Long Open "C:\Users\a\Desktop\test.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf n = n + 1 Cells(n, 1) = buf Loop Close #1 End Sub

  • EXCELVBAでデータをテキストファイルで出力したいと

    EXCELVBAでデータをテキストファイルで出力したいと考えています。 ***************************** 作成したVBA ***************************** Sub test_Click() Dim fNAME As String fNAME = "c:\test.txt" Open fNAME For Output As #1 i = 1 Print #1, "<test=" & Cells(1, i) & "," & Cells(2, i) & "," & Cells(3, i) & "," & Cells(4, i) & "," & Cells(5, i) & ">" Close #1 '閉じる End Sub ***************************** エクセルの値 ***************************** A列 1 2 3 4 5 ***************************** 出力されたテキストファイル ***************************** <test=1,2,3,4,5> このようになっていますが、 エクセルが A列 1 2 のように、2個しかないと、 <test=1,2,,,> のようになってしまいます。 <test=1,2> ↑のようになるように、エクセルの値に応じて、 「,」が出力しないようにしたいです。 どうしたらよいのでしょうか。 よろしくおねがいします。

  • 配列をテキストファイルに書き込むことは不可能でしょうか?

    Sub Macro1() Dim No As Long No = FreeFile 文字列 = "1234" Open "D:\Test.txt" For Output As #No Print #No, 文字列 Close #No End Sub 上記のMacro1の文字列の書き込みは可能なのですが Sub Macro2() Dim No As Long Dim 配列 As Variant Range("a1").Value = "1☆2☆3☆4☆" No = FreeFile 配列 = Split(Range("A1").Value, "☆") Open "D:\Test.txt" For Output As #No Print #No, 配列 Close #No End Sub だと「Print #No, 配列」で「型が一致しません」とエラーになってしまいます。 テキストファイルに配列を書き込みたいのですがどうすればいいのでしょうか? よろしくお願い致します。

  • エクセルのデータを大量のテキストファイルに書き込みたい。

    エクセルの縦のセルのデータ(下のCells( 4 * j + i, 4))を繰り返しで、400個のテキストファイルに書き込みたいのですが、 下の""内のjは繰り返しせずに、j.txtとなって入力されてしまいます。なにかいい方法がありませんでしょうか。 ご協力お願いします。(ちなみにvbaは初心者です。) Private Sub CommandButton2_Click() Dim n As Long n = FreeFile Dim j As Integer For j = 0 To 399 For i = 1 To 4 a = Cells( 4 * j + i, 4) f2 = ActiveWorkbook.Path & "\j.txt" Open f2 For Append As #n Print #n, a Close #n Next i Next j End Sub 例. 1 2 3 4 5 6 7 8 9 10 12 13 1,2,3,4→1.txt 5,6,7,8→2.txt 9,10,11,12→3.txt

  • テキストファイルへの書き出し

    ExcelVBAについて教えてください。 Dim path As String Dim FullPath As String Path ="C:\" Dim FN As String FN ="abc.txt" Dim intFF As Integer intFF = FreeFile FullPath = Path & "\" & FN Open FullPath For Output As #intFF Print #intFF, FullPath Close #intFF とやると、Open FullPathのところで、実行時エラー 76、パスが見つかりませんと表示されてしまいます。 やりたいことは、Excel VBAでテキストファイルを新規につくり、そこへ書き出し、保存したいです。ファイル名はFullPathで指定したファイル名を新規で作り出し、それに対して書き出し、保存をしたいです。 何が間違っているのでこのようなエラーが表示されてしまうのでしょうか?回避方法がありましたらご教授お願いいたします。

  • EXCELVBAでファイルにあるデータをtxtファイルに出力しようと考えています。

    EXCELVBAでファイルにあるデータを txtファイルに出力しようと考えています。 txtファイルに出力することはできましたが、 エクセルのデータを参照しません。 どうすればいいのでしょうか。 よろしくおねがいします。 ********************************** 作成したVBA ********************************** Sub test_Click() Dim fNAME As String 'ファイル名格納用 fNAME = "c:\test.txt" Open fNAME For Output As #1 **************************************************** ここにB1からB10までの値をいれようと考えています。 ループのさせ方もよくわかりません。 **************************************************** Print #1, "test1=" & Range("B1").Select & " Print #1, "test2=" & Range("B2").Select & " … Print #1, "test10=" & Range("B10").Select & " Close #1 End Sub

  • 日付日時をファイルに出力するには

    お世話になります。 DIM Today as date Today = Now Open data.txt For Append As #1 Print #1, Today Close では「data.txt」に日付日時が出力されないのはどこが間違いか教えて下さい。

  • なぜvbaコードに「#」を付けてもエラーにならないのか?

    なぜvbaコードに「#」を付けてもエラーにならないのか? Sub Sample21() Dim n As Long n = FreeFile Open "D:\Test.txt" For Output As #n Print #n, Now Close #n End Sub というテキストファイルに書き込むマクロですが 「#n」はなぜエラーにならないのですか? 標準モジュールでは、 「#」と書くとコンパイルエラーになるのに For Output As #n だと大丈夫な理由が知りたいです。 あと、気付いた事は 「#」は「&」や「=」と同じ色で表示されます。

  • ファイルが開かれているかどうかの判断

    ある処理を行ってその結果をテキスト形(メモ帳など)に出力するもの作成しています。 EXCELだと FILENO = FreeFile Open パス名 For Output As #FILENO これでもし指定のファイルがすでに開いていたらエラーになってエラールーチンで拾えるのですが テキスト形(メモ帳など)のときだとエラーになりません。 どう対処すればいいのですか?

  • ファイルを開きたい。

    Dドライブ直下にあるBook1.csvというファイルをエクセルで普通に開きたいのですが。 Open "D:\Book1.csv" For Random As #1 としても何も起こりません。 もう一度実行すると、「ファイルは既に開かれています。」というメッセージが出ます。 おそらくVB上では開かれているのですが。画面上に表示されません。 画面上に表示させるのはどうすればよいのでしょうか?

専門家に質問してみよう