- 締切済み
VBA テキストファイルを読み取り専用で開くには
VBAでテキストファイルをworkbookと同じように 読み取り専用で開く方法はないでしょうか? 開く直前にSetAttrで設定するとほかのユーザーが書き込みできなくなって しまいます。 24時間ずっと2分に一度くらい自動で書き込みが行われる テキストファイルを読み取り専用で開き、書き込み側も エラーを出すことなく書き込み続けることは可能でしょうか。 WorkBook.Openの読み取り専用のスイッチをTRUEとしたいところですが 行数がWorkBOOKの限界を超える場合もありますのでできません。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ToOrisugaru
- ベストアンサー率28% (80/280)
関連するQ&A
- WORD VBAでテキストファイルを指定して...
WORD2002を使っています。 WORD VBAでダイアログボックスを表示させ、オープンするファイルを指定しようとしています。 Documents.Open FileName:=dlg.Name, ReadOnly:=True でオープンするファイルがテキストファイルだけなので、ダイアログボックスに表示するファイルをテキストファイルだけにしたいと思っています。 どのように変更すればいいのでしょうか?
- ベストアンサー
- その他MS Office製品
- 自分のExcelを読み取り専用で開くVBAは?
Excel2003を使っています。 基本的なことで恐縮なのですが、 Excelファイルを手動で開くとき、読み取り専用にするような方法はないでしょうか。 ファイルのプロパティから「読み取り専用」にチェックを入れても NASの性質なのか、チェックが外れてしまいます。 (前提として、ここの変更は考えていません) そこで、「読み取り専用を推奨する」にしたのですが、毎回メッセージボックスが出るため 「読み取り専用にしない」を選択される場合もあります。 そのため、VBAにその指示を書き込む方法を探していました。 たとえば、以下のコードを試してみました。 しかし、開いたファイルに指示しているため、当然ながら以下のメッセージが出ます。 "***.xls は既に開いています。2重に開くと、これまでの変更内容は破棄されます。***.xls を開きますか?" Private Sub Workbook_Open() Dim Filename As String Filename = ThisWorkbook.FullName With Workbooks.Open(Filename, , True) .ActiveSheet.Activate End With End Sub 「読み取り専用を推奨する」をオンにして、Workbook.Openの引数である ignorereadonlyrecommended を設定する…というのも、 やはり上記の点で引っかかります。 何か方法はないものでしょうか。。。
- ベストアンサー
- Excel(エクセル)
- エクセル2000VBAでファイルを操作したい
いつもお世話になっています。 エクセルVBAで別のワークブックを参照したいので workbooks.open Filename:="C:my documents\***.xls" とすると、そのオープンするワークブックのTisWorkbookのWorkbook_Open()で実行している(.show)メニュー(ユーザーフォーム)が開いてしまいます。 このとき、Workbook_Open()を実行させないでワークブックを開く方法って、 なにかありますか? Shiftを押しながらファイルを開くとき、実行されませんよね?それをVBAでできるのですか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 開かれた別ファイルが読み取り専用で開かれるのならば
Sub tset() Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(MyFileName) xlApp.Visible = True Set xlBook = Nothing Set xlApp = Nothing End Sub こんな感じで、別ファイアルを開いているのですが、 開かれた別ファイル(MyFileName)が、 読み取り専用で開かれるのならば、と言う条件でコードを書きたいのですが どうすればいいでしょうか? MyFileName側の Private Sub Workbook_Open() End Sub で操作したいです。
- ベストアンサー
- Excel(エクセル)
- vba 読み取り専用で他のファイルを開くには
エクセルvbaで他のエクセルファイルを読み取り専用で開きたいのですが 「読み取り専用で!」とするにはどうすればいいですか? 今のままだとエラーになります。 ------------------------- Sub a() Set App = CreateObject("Excel.Application") Set xlBook = App.Workbooks.Open(MyFileName) With App .Visible = True .ReadOnly '実行時エラー438 End With Set App = Nothing End Sub
- ベストアンサー
- Excel(エクセル)
- VBAでファイルを閉じる時に、他のエクセルファイルを閉じるには?
VBAで、 Private Sub Workbook_Open() Workbooks.Open FileName:="バス時刻表.xls",ReadOnly:=True End Sub で、バス時刻表.xlsを自動的にオープンした後、 閉じる時に、 Private Sub Workbook_BeforeClose(Cancel As Boolean) Workbooks("バス時刻表.xls").Close End Sub で記述したら、エラーとなります。 どのようにすればいいのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル VBA 読み取り専用になっているファイルを開く場合
エクセルVBAを取り組んでいるのですが、 "A"のファイルでマクロを作動させて、"B"のファイルを開くマクロを組んでいます。 その時に誰かが"B"のファイルを開いていた場合強制的に読み取り専用で開いてしまいます。 読み取り専用で開こうとした場合には、マクロを停止させるようにしたいのですが、どういう形にしたら良いでしょうか? ちなみに"B"ファイルを開いているマクロを下に乗せておきますので、変更しなければならない等がありましたら、教えていただけますと幸いです。 For Each wb In Workbooks If InStr(wb.Name, "B") > 0 Then flag = True Next wb If flag = True Then Else Workbooks.Open Filename:="Z:\B.xls" End If
- ベストアンサー
- オフィス系ソフト
- VBAでテキストファイルを保存
VBAでテキストファイルを保存したいのですが、EUCで保存できません。 EUCで保存するにはどうしたらいいのでしょうか? Open myFile For Output As #myNo です。
- ベストアンサー
- Visual Basic
- 【VBA】テキストファイルを指定行数からの読み込み
こんばんは。 EXCEL VBAでテキストファイルを読み込む事について質問です。 VBAでテキストファイルをこちらから指定する行数(上から何番目という感じで)からデーターを読み込みたいのですが、どの関数をつかっていいかわからず困っています。 1行ずつ読みこむ「Input Line関数」では、無駄な行まで読み込むので動作が遅くなります。 読み込みたい行はすでにわかっているので、最初からその行に飛んでからデーター読み込みたいと思ってます。 ちなみに指定する行数は、ファイルによって違います。 あらかじめ「Input Line関数」で、ある文字が何行目にあるかを探す行為をあらかじめ行っています。 みなさまのアイデアを拝借したく、よろしくお願いします。
- ベストアンサー
- Visual Basic
- テキストファイルとして開くVBA
フォルダC:\Users\USER\Desktop\あいう において このダイアログを開いて そのなかのファイル(A.xml)を txtファイルとして開いて その名前を テキスト.txt として 同名で保存したいのですが Dim FileName As Variant Dim NewFile As TextFile FileName = Application.GetOpenFilename() Set NewFile = TextFile.Open(FileName) NewFile.SaveAs "テキスト.txt" Activetxtfile.SaveAs FileName:="C:\Users\PC\Desktop\あいう\テキスト.txt", FileFormat:=TextFile どうも違うようです 御教示ください
- 締切済み
- Visual Basic
お礼
回答ありがとうございます。 複写とcopyメソッドでおこなうと copy時は書き込み不可となります。 ファイルが重いためコピーに時間がかかり その間書き込み不可となりエラーになります。