- 締切済み
VBAでログファイルを使って表をつくりたいです。
Excelのマクロを使って、ログファイル「PPP.0413」というファイルを読み込み、表にして出力したいです。ファイルの中身は、 00201204110255******制御A ***** というようなものが50行あります。 00は無視、20120411が日付、0255が時刻、制御Aがプロセス名、****は無視 日付をセルA列に、時刻をセルB列に、制御AをセルCに出力 これを50行繰り返し行いたいです。 あとOpenで開いたときに化け文字になってしまうので文字変換コード?も指定したいです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>文字コードの変換と 回答者は千里眼じゃありませんから,実際のファイルの文字コードが何であるのかは,現物を持っているアナタが自分で確認してください。 実際に手を動かしてテキストインポートウィザードを起動し,回答したようにダイアログにある元のファイルの選択肢をいろいろ当たって,どの文字コードを選べばちゃんと見える言葉で表示されるか確認してから作業を進めます。たとえばUnicode(UTF-8)だったか,といった具合に。 文字コードが確定しないと,当然「どこで文字列を切断する」とかも全くイミがありません。 どの選択肢を選んでもまるで全く読める言葉で現れてこないときは,エクセルで読めるテキストコードじゃないので諦めた方が良いかもしれません。 文字コードが無事に判明したら,先の回答に戻って続きの作業をまた手を動かして行ってください。
- keithin
- ベストアンサー率66% (5278/7941)
そうですか。 >ファイルに関しては暫定的でも名前の変更はできません。 手順: 0413ファイルのコピーを取る コピーしたファイルのファイル名を test.txt に変更する 以下回答済み手順を実際に手を動かしてやってみる。 >流れはだいたい把握はしています。簡単なフローチャートも作りました。 回答した手順で、具体的にどこを失敗するのか質問してみてください。
- keithin
- ベストアンサー率66% (5278/7941)
手順: 暫定的にサンプルファイルの拡張子を今の.413から.txtに変更する エクセルのファイルメニューの「開く」でサンプルファイルを開く テキストインポートウィザードが起動するので スペースによって…固定長 を選び 元のファイルの文字コードを選択し 次へ行って 00の次 日付8文字の次 時刻4文字の次 をそれぞれクリックして仕切り線を入れ (もしも***が文字数で規定されるならそこにも線を入れて) 次へ行って 00のカラムを選んで「削除」にマークし 日付のカラムを選んで「日付 YMD」にマークし 切り出せたなら***のカラムも「削除」をマークして 完了する 状況に応じて「*」を除去する手立てを考える といった操作を行うことで、だいたいインポートできます。 まずはご自分の手を動かしてください。正しく取り込みできる手順を確立できたら、今度は「新しいマクロの記録」で確認した手順をマクロに録って、利用します。 もちろん、たとえば ・ファイルの保存場所 ・実際のファイルの取得方法 (PPPというファイルだけ処理すればよいなら記録されたマクロのままでOKです) ・実際のファイルの拡張子 (もちろんどのファイルも.0413なら記録されたマクロに記録されている.txtの記述を.0413に書き換えるだけでOKです) など、ご相談で説明不足なアレコレは、あなたが抱えているファイルの実際の様子に合わせて応用しなければいけません。
お礼
回答ありがとうございます。 ファイルに関しては暫定的でも名前の変更はできません。 重要なログファイルなので勝手に替えてしまうといけないんです。 流れはだいたい把握はしています。簡単なフローチャートも作りました。 ただ書き出すときの区別のやり方がわからないんです。
お礼
具体的に失敗するのは、 文字コードの変換と1行のなかの文字数での区別の仕方が わからないのでセルに1行まるごと入ってしまいます。