No.3ベストアンサー
- 回答日時:
こんにちは。
>すでにエクセルがopenしているテキストファイルをあらためてエクセルでopenしようとしたら、「開いています。閉じてから実行してください」と警告を出すプログラムが必要です。
Excelでオープンしているということですね。それが分かりませんでした。
普通に、Excelのメニューから「ファイルを『開く』」で、テキストファイルを選択し、そのまま実行し、テキストファイルを開こうとすれば、「テキストウィザード」が出てくるはずです。
既にテキストファイルを開いた状態で、再度開こうとしても、テキストファイルままでは、再度、読み込まれるだけで、二重に開くことは出来ないようです。
仮に、テキストファイルが編集中でしたら、以下のようなダイアログが出てきます。
---------------------------------------------------------
****.txtは、既に開いています。2重に開くと、これまでの変更内容は破棄されます。
****.txt を開きますか? はい(Y), いいえ(N)
---------------------------------------------------------
その時に、「いいえ」選択すれば、再度開くことは防止されます。
今のところ、Excel 2010は手元にありませんが、仕様としては同じはずです。
No.2
- 回答日時:
こんばんは。
>「杏果物.txt」という名前のファイルがあったとして、このファイルが現在openしているのかcloseしているのかを知りたかったのです。
Textファイルは、別に開いていても、ソフトウェアで排他的モードで開いているのかどうかの問題で、エラーそのものはソフトウェアに依存するはずだと思いましたが……。それは、なんのソフトウェアを使っているかによっても違うはずです。
>openしているファイルをopenするよう指示したらエラーになりますから「閉じてください」と表示してプログラム終了。そして、closeしているならopenして中身をシートに読み出すというプログラムです。
Textファイルに対してという意味ですよね。念のために、今、調べてみしたが、例えば、テキスト・エディタで開いているテキストファイルは、別途Openしてみても、エラーは出ませんね。
もちろん、開いているファイル名を調べることは可能ですが、それを、排他的に開いているプログラムのハンドルを取得し、そのプログラムを閉じるという作業になるはずです。しかし、今までよりも、ずっと複雑なコードになると思います。もしかしたら、それはExcel上の話ということでしょうか?しかし、排他モードということは、他人が開いているという意味になるはずですが、それ自体は、Openは回避するだけで、強制Closeは不可能だったと思います。
もう少し、詳しく説明をお願いします。
すでにopenしているテキストファイルをあらためてopenしてもエラーにはならないのですね。勉強になりました。
エクセルVBAで株の分析を行い、各社に1ずつのテキストファイルを対応させて、そこに分析データを保存したり、逆に、保存してあったデータをエクセルシートに読み込んで分析し直したりします。
完成したら第三者に配布するので、エラーが出てプログラムが途中で止まるのがいやだったのです。(私だけが使うならエラーが出てもいいのですが)
しかし、エラーが出ないとなると、データを保存するテキストファイルの二重編集を防止できれば充分です。
すでにエクセルがopenしているテキストファイルをあらためてエクセルでopenしようとしたら、「開いています。閉じてから実行してください」と警告を出すプログラムが必要です。
どういうアプローチにしたらいいのか分からず手詰まっています。
No.1
- 回答日時:
こんばんは。
なぜ、VBAを使わなくてはならないのでしょうか?
一般のツールを外部からインストールしてはいけないのでしょうか?
出来ないとは言いませんが、面倒だと思います。
JGREP(Windows用)は、便利だと思います。
ただし、標準が、JISになっているので、[文字コードを自動判別する]にチェックをいれないといけません。
JGREP2.05
http://www.vector.co.jp/soft/win95/util/se174779 …
スクリーンショット
http://www.hi-ho.ne.jp/jun_miura/jgrep.htm
上記よりも、劣るものですが、考えてみました。
'//
Sub TextSearch_Macro()
Dim myDirs() As Variant
Dim i As Long, j As Long, k As Long
Dim myFName As String
Dim TextLine As String
Dim f As Long
'--------検索ディレクトリ-----
Const MYPATH As String = "C:\Users\[XXXX]\My Documents\Text\"
'--------検索語------------
Const SRCH As String = "杏果"
'---------------------------
myFName = Dir(MYPATH & "*.txt")
Do While myFName <> ""
ReDim Preserve myDirs(i)
myDirs(i) = myFName
myFName = Dir()
i = i + 1
If i > 10000 Then '検索数リミット
Exit Do
End If
Loop
For j = 0 To UBound(myDirs)
f = FreeFile()
Open MYPATH & myDirs(j) For Input As #f
Do While Not EOF(f)
Line Input #f, TextLine
If InStr(1, TextLine, SRCH, vbTextCompare) > 0 Then
k = k + 1
Cells(k, 1).Value = myDirs(j)
Exit Do
Else
TextLine = StrConv(TextLine, vbFromUnicode) 'Unicode 対策
If InStr(1, TextLine, SRCH, vbTextCompare) > 0 Then
k = k + 1
Cells(k, 1).Value = myDirs(j)
Exit Do
End If
End If
Loop
Close #f
Next j
If j = 0 Then
MsgBox SRCH & "は見つかりませんでした。", vbInformation
End If
End Sub
'//
全てのテキストファイルの中身を全部検索して、任意の語句が含まれるテキストファイル名を返すプログラムですね。
大変勉強になりました。
言葉足らずでしたが、やりたいと思っていたのは、
たとえば「杏果物.txt」という名前のファイルがあったとして、このファイルが現在openしているのかcloseしているのかを知りたかったのです。
openしているファイルをopenするよう指示したらエラーになりますから「閉じてください」と表示してプログラム終了。そして、closeしているならopenして中身をシートに読み出すというプログラムです。
どういうプログラムにすると、任意の名前のテキストファイルがopenしているかcloseしているか分かるでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- Excel(エクセル) エクセル マクロ テキストファイルを取り込む 複数の区切り文字で別々のセルに格納するには? 3 2022/08/10 21:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- フリーソフト テキストファイル内を検索したい 1 2022/06/01 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) VBA で エクスプロー操作 1 2023/05/31 16:13
- その他(ソフトウェア) powershell で出力したテキストファイルをvim で開くと文字化け 2 2023/01/11 21:39
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
ファイルが開かれているかどうかの判断
Visual Basic(VBA)
-
VBAにてEXCEL以外のファイル(テキストなど)がすでに開いているかの確認方法
Visual Basic(VBA)
-
VBAでCSVファイルが使用中かどうかの確認
Visual Basic(VBA)
-
-
4
VBAでのタイトルバーの取得
Visual Basic(VBA)
-
5
VBでファイルが開かれているかどうかを確認したい
Visual Basic(VBA)
-
6
ファイルは既に開かれています(Error55)について
Visual Basic(VBA)
-
7
CSVファイルが開かれているかどうか
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイルの一部分を抽...
-
VB(VBA)で、バイナリデータを使...
-
既存のテキストファイルを開く方法
-
テキストファイル内容の、16進...
-
ストリームについて。
-
VBA。開いているテキストファイ...
-
C#におけるファイル読み取りの...
-
pngからepsへの変換
-
エクセルVBAでメールの自動作成...
-
テキストファイル固定長データ...
-
RGBデータからBMP画像へ
-
テキストファイル(英語&日本...
-
テキストファイルをiCalendar形...
-
テキストファイルの特定行の削...
-
VBAでUTF-8テキストファイル作...
-
テキストファイルを自動編集したい
-
テキストファイルを開くとメモ...
-
C言語
-
ファイル変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイルの一部分を抽...
-
既存のテキストファイルを開く方法
-
StreamReaderで読み込んだファ...
-
テキストファイルの特定行の削...
-
VB(VBA)で、バイナリデータを使...
-
Excel VBAが徐々に遅くなる
-
VBSでテキストファイルの2行目...
-
C言語のソースからコメントを抜...
-
テキストファイルをSQLServerデ...
-
[VB.NET] 処理の高速化を行いた...
-
テキストファイル固定長データ...
-
テキストファイル内容の、16進...
-
EXCEL VBAでカンマ区切りテキス...
-
エクセルVBAでメールの自動作成...
-
ストリームについて。
-
WORDのVBAで差し込み印刷時、デ...
-
別のサーバーのテキストファイ...
-
ファイルの中身
-
Google検索履歴のテキストファ...
おすすめ情報