No.4ベストアンサー
- 回答日時:
>補足:2017/06/11 17:53
その補足説明でも、余計に疑問が増えて、とてもマクロにはならないと思います。
>1.変数で”INPASS”と設定してます。
コードはあるのですか?
>RG00001読み込み後の結果
別の質問で、Excelファイル(.xls)と言った人が、結果的には、拡張子ナシで取り扱っていたのと同じような気がします。そもそも、RG00001て何?プログラム名は、ファイルなのですか?
>チェックしてヒットした管理番号を転記するのが上手くいきません。
管理番号とか、プログラム名とか、読み手側では分からないのです。
何を対象として、どこにあるものなのかとか、補足説明が、逆に混乱させられてしまうのです。前提のない人に、説明するには無理があります。
私からすれば、要は、ファイルの中の、二つの番号を検索すればよいのでは?
検索するなら、1行目とか2行目とか関係ありませんし、行数が必要なら、少し手を加えれば済みます。
その検索値を「キーワード」と呼んでいるようですが、最初の質問とは整合性が合いません。
>例 キーワード1 ”ABC001” ワイルドカードでさがす
> キーワード2 ”ABC002” ワイルドカードでさがす
>Open "ファイル名" For Input As #1 でファイルを開き
そもそも、ファイル群のそれぞれのファイルを、Dir 関数で取って一覧にして、そこで二つのキーワードがあれば、ありとするなら、Open For Input も必要ないと思います。
TextStream で、ファイルの中身を取得して、検索を二回すれば済む話です。
方法を指定するなら、ご自身でネットで検索して開発すればできると思います。それならそれで、みなさんがアドバイスしてくれるはずです。#3さんの書いている内容と、私が思惑とは、違っています。
しかし、今の状態では、こちらの思惑のまま進めたほうが良いように思います。それは、やぶ蛇になる可能性がありますが。
たぶん、解答にはなっていないかとは思いますが、サンプルとして掲げておきます。意味は、分かるはずです。
'//標準モジュール
Sub CheckFilesInside()
Dim FName As String
Dim WShell As Object
Dim myPath As String
Dim s1 As String, s2 As String
Dim objFS As Object
Dim objText As Object
Dim i As Long, j As Long, x As Long
Dim buf
Const ForReading = 1
Const TriStateTrue = -1
ActiveSheet.Range("A1").CurrentRegion.ClearContents
Set WShell = CreateObject("Wscript.Shell")
myPath = WShell.SpecialFolders("MyDocuments") & "\Text\"
s1 = "ABC001" '検索値1
s2 = "ABC002" '検索値2
Set objFS = CreateObject("Scripting.FilesystemObject")
ActiveSheet.Range("A1:C1").Value = Array("ファイル名", s1, s2)
x = 2
FName = Dir(myPath & "*.txt", vbNormal) 'ファイル名
Do While FName <> ""
If FName <> "." And FName <> ".." Then
'SJISの場合
Set objText = objFS.OpenTextFile(myPath & FName)
''Unicodeの場合
''Set objText = objFS.OpenTextFile(myPath & FName, ForReading, False, TriStateTrue)
ActiveSheet.Cells(x, 1).Value = FName
buf = objText.ReadAll
i = InStr(1, buf, s1, vbTextCompare)
j = InStr(1, buf, s2, vbTextCompare)
If i > 0 Then
ActiveSheet.Cells(x, 2).Value = "●"
End If
If j > 0 Then
ActiveSheet.Cells(x, 3).Value = "●"
End If
End If
x = x + 1
buf = "": i = 0: j = 0
FName = Dir
Loop
End Sub
この回答へのお礼
お礼日時:2017/06/11 23:09
参考にしたいと思います。有難うございます。
今後、質問するときも聞き手にわかりやすいように具体的な内容や目的を伝わるように記載したいと思います。
No.3
- 回答日時:
私が回答できる訳ではありませんが、もし私がそのようなマクロを作ってほしいなら、
1.テキストファイルの格納されている箇所(1つのフォルダ内なのか、いろいろ分かれているのか等)
2.テキストファイルのファイル名
3.テキストファイルの文字コード(シフトJISかどうか)
4.テキストファイルに書かれている内容のサンプル
5.キーワードが書かれているシート名はなにか、キーワードはExcelの何行目の何列に書かれているのか。
6.キーワードの数はいくつあるのか。
7.結果を別シートにどのように格納するのか。別シートのシート名は何か。
等の情報を提供します。今のままでは、漠然とした要求なので、No1,No2の方のような一般論の回答だけしか得られないかと。
No.2
- 回答日時:
テキストファイルの構造が不明なので
一般的なファイルの開き方
http://officetanaka.net/excel/vba/file/file08.htm
と、読んだファイルを セルに落とす
http://officetanaka.net/excel/vba/file/file08b.htm
セルの検索
http://qiita.com/rohinomiya/items/24c89984206d7e …
http://www.moug.net/tech/exopr/0090052.html
http://www.tipsfound.com/excel/02104
ひとつのファイルに対して手順が出来たら DO-LOOPで EOFまで回すだけ
No.1
- 回答日時:
レスが付かないので
基本、VBAから WORDを 起こして、オブジェクトを操作することになります。
オブジェクトの宣言
ワードを開く
終わるまでのループに入る
テキストファイルの読み込む
ワードオブジェクトのテキストから 目的のキーワードを探す
一致すれば・・・・
しなければ・・・・
検索キーワードが終われば・・・アウト
ループに戻る
オブジェクトの終了
こんな感じ
Word Document オブジェクト
https://msdn.microsoft.com/ja-jp/library/aa28862 …
方法 : Word 文書でテキストを検索する
https://msdn.microsoft.com/ja-jp/library/aa28900 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/07/14 12:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/15 16:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- PHP PHPでテキストファイルに保存した時の改行問題 1 2022/11/19 15:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルが作成できない
-
テキストファイルの文字色に色...
-
batファイル処理でのテキストフ...
-
Excelでdatファイルを作成??
-
複数のテキストファイルをexcel...
-
一気にずばっと複数のメールを...
-
VBSでテキストファイルのタブ区...
-
拡張子が.txtのファイルに将来...
-
ファイル名の特定文字だけ削除...
-
VBAで、テキストファイルの削除...
-
CDの曲名をテキストファイルで...
-
テキストデータのインポート
-
ブラウザでASPファイルを開こう...
-
サンダーバードでの新規にフォ...
-
OCXのライセンス
-
フォルダ作成用バッチファイル...
-
Excel-VBA 撮影日時の取得
-
Access2003で「オブジェクト'○○...
-
IEで複数のファイル選択方法
-
VBAでファイルパスが長すぎてコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでdatファイルを作成??
-
複数のテキストファイルをexcel...
-
batファイル処理でのテキストフ...
-
バッチファイルが作成できない
-
テキストファイルの文字色に色...
-
複数のファイルを同時検索し、...
-
一気にずばっと複数のメールを...
-
ファイル名の特定文字だけ削除...
-
マクロでメモ帳に貼り付け
-
VBSでテキストファイルのタブ区...
-
ヘルプファイルの翻訳
-
CADでグラフ作成
-
パイソン(コラボラレイトリー...
-
文字の頭文字順に自動移動
-
Excel2003でマクロを使用してtx...
-
インデザインのテキスト流し込み
-
CDの曲名をテキストファイルで...
-
ExcelVBA テキストファイルから...
-
エクセルにpdfのテキストを表示...
-
エクセルVBA テキストファイ...
おすすめ情報
2014itochan さん有難うございます。
Word Document オブジェクトは組み込んだことがないので出来れば下記のようなやり方でやりたいです。いい方法があれば教えて下さい。
例 キーワード1 ”ABC001” ワイルドカードでさがす
キーワード2 ”ABC002” ワイルドカードでさがす
Open "ファイル名" For Input As #1 でファイルを開き
キーワード1がテキストファイルにあるかチェック
<有の場合> 有りとエクセルに記入してファイルを閉じて次のファイルを読み込む
<無の場合> キーワード2があるかチェック
<有の場合> 有りとエクセルに記入してファイルを閉じて次のファイルを読み込む
<無の場合> 無しとエクセルに記入してファイルを閉じて次のファイルを読み込む
有難う御座います。情報不足でしたね。
1.変数で”INPASS”と設定してます。
2.シート名"結果"B列の2行目移行記載。
例 A列 B列
1行目 管理番号 プログラム名
2行目 △ PRG00001
3行目 △ PRG00002
3.シフトJISです。
4.テキストの中身の例。
***************************
* 修正履歴:XXX001 1/10 *
* XXX002 3/10 *
* (ABC002) 5/10 *
***************************
01 XXXXX.
05 XXXXX PIX(10).
続き
5.メインシートのB列で設定され、2行目以降から記載。
例 B列
1行目 管理番号
2行目 ABC001
3行目 ABC002
4行目 △
6.キーワードの数は変動しますが、最低1個あって次の行が△なら以降キーワード無。
7.シート名"結果"のA列の2行目にヒットしたキーワードを転記します。
例 PRG00001読み込み後の結果
A列 B列
1行目 管理番号 プログラム名
2行目 ABC002 PRG00001
3行目 △ PRG00002
対象のプログラムを開いた後にチェックしてヒットした管理番号を転記するのが上手くいきません。
アドバイス宜しくお願いします。