• 締切済み

VBAでログファイルを使って表をつくりたいです。

Excelのマクロを使って、ログファイル「PPP.0413」というファイルを読み込み、表にして出力したいです。ファイルの中身は、 00201204110255******制御A ***** というようなものが50行あります。 00は無視、20120411が日付、0255が時刻、制御Aがプロセス名、****は無視 日付をセルA列に、時刻をセルB列に、制御AをセルCに出力 これを50行繰り返し行いたいです。 あとOpenで開いたときに化け文字になってしまうので文字変換コード?も指定したいです。 よろしくお願いします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

>文字コードの変換と 回答者は千里眼じゃありませんから,実際のファイルの文字コードが何であるのかは,現物を持っているアナタが自分で確認してください。 実際に手を動かしてテキストインポートウィザードを起動し,回答したようにダイアログにある元のファイルの選択肢をいろいろ当たって,どの文字コードを選べばちゃんと見える言葉で表示されるか確認してから作業を進めます。たとえばUnicode(UTF-8)だったか,といった具合に。 文字コードが確定しないと,当然「どこで文字列を切断する」とかも全くイミがありません。 どの選択肢を選んでもまるで全く読める言葉で現れてこないときは,エクセルで読めるテキストコードじゃないので諦めた方が良いかもしれません。 文字コードが無事に判明したら,先の回答に戻って続きの作業をまた手を動かして行ってください。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

そうですか。 >ファイルに関しては暫定的でも名前の変更はできません。 手順: 0413ファイルのコピーを取る コピーしたファイルのファイル名を test.txt に変更する 以下回答済み手順を実際に手を動かしてやってみる。 >流れはだいたい把握はしています。簡単なフローチャートも作りました。 回答した手順で、具体的にどこを失敗するのか質問してみてください。

j-buffon
質問者

お礼

具体的に失敗するのは、 文字コードの変換と1行のなかの文字数での区別の仕方が わからないのでセルに1行まるごと入ってしまいます。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

手順: 暫定的にサンプルファイルの拡張子を今の.413から.txtに変更する エクセルのファイルメニューの「開く」でサンプルファイルを開く テキストインポートウィザードが起動するので  スペースによって…固定長 を選び  元のファイルの文字コードを選択し 次へ行って  00の次  日付8文字の次  時刻4文字の次  をそれぞれクリックして仕切り線を入れ (もしも***が文字数で規定されるならそこにも線を入れて) 次へ行って  00のカラムを選んで「削除」にマークし  日付のカラムを選んで「日付 YMD」にマークし  切り出せたなら***のカラムも「削除」をマークして 完了する 状況に応じて「*」を除去する手立てを考える といった操作を行うことで、だいたいインポートできます。 まずはご自分の手を動かしてください。正しく取り込みできる手順を確立できたら、今度は「新しいマクロの記録」で確認した手順をマクロに録って、利用します。 もちろん、たとえば ・ファイルの保存場所 ・実際のファイルの取得方法 (PPPというファイルだけ処理すればよいなら記録されたマクロのままでOKです) ・実際のファイルの拡張子 (もちろんどのファイルも.0413なら記録されたマクロに記録されている.txtの記述を.0413に書き換えるだけでOKです) など、ご相談で説明不足なアレコレは、あなたが抱えているファイルの実際の様子に合わせて応用しなければいけません。

j-buffon
質問者

お礼

回答ありがとうございます。 ファイルに関しては暫定的でも名前の変更はできません。 重要なログファイルなので勝手に替えてしまうといけないんです。 流れはだいたい把握はしています。簡単なフローチャートも作りました。 ただ書き出すときの区別のやり方がわからないんです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 複数ファイルのデータを1つのファイルへ纏めるマクロ

    マクロの実行で、Excel形式の約400個のファイル中のデータを1つの出力ファイルへ纏める為のマクロを作成したいのですが、VBAの初心者で、スクリプトの書き方が分からず大変困っております。 入力ファイルの中身は頻繁に追加、削除を繰り返しており、そのたびに入力ファイルを目視確認後、出力ファイルを手動で修正している状況でございます。 大変お手数ですが、マクロがお分かりの方がいらっしゃいましたら、ご教示を宜しくお願い致します。 ・入力ファイルは、以下ような名前になっております。 課題参加者_23RF3001.xlsx 課題参加者_23RF3005.xlsx 課題参加者_23RF3072★.xlsx 課題参加者_23RF3073.xlsx 課題参加者_23RF3199.xlsx 課題参加者_23RF3543.xlsx ・入力ファイルのデータは、添付しました画面イメージの通りで、  フォーマットは全て同じです。 ・出力ファイルに吐き出す入力データはB列~K列とN列になります。 ・出力ファイルのタイトルは、1番目に呼び出したファイルのB列~K列とN列を使う。 ・出力ファイルのA列のデータは、入力ファイル名の『23RF3001』、『23RF3543』などを入力データ分入れる。 ・出力ファイルのタイトルに使う、入力ファイルのタイトルは以下のようになっています。   B列~E列のタイトルは、6行目、7行目が結合されたセルに入っています。  F列のタイトルは、5行目、6行目、7行目が結合したセルに入っています。  G列~H列のタイトルは、6行目、7行目が結合されたセルに入っています。  I列~K列のタイトルは、7行目のセルに入っています。  N列のタイトルは、6行目、7行目が結合されたセルに入っています。 ・出力ファイルへ吐き出したい、入力ファイルデータの範囲は、  B列~K列の8行目以降とN列の8行目以降のデータになりますが、  『職員番号』、『名前』、『部門』に記載が有る行のみを出力ファイルへ吐き出します。  N列はリストの最後の行まで文字が入力されていますが、  N列についても、上記の『職員番号』、『名前』、『部門』に記載が有る行のみを出力ファイルへ吐き出します。 ・出力データへ吐き出す時の書式フォーマットは以下の通りになります。  A列=文字形式  B列=数値形式  C列~F列=文字形式  G列、H列=日付形式  I列~K列=チェックボックス(フォームコントロール形式(入力データと同じ形式))  N列=文字形式 ・入力データは今の所50行まで入力可能としています。

  • エクセルでの自動日付入力

    エクセルでこんなことできますか? B列以降のどれかのセルに変更を加えて(セル内に文字入力、セル内の文字削除)、保存した後閉じます。 次回そのファイルを開いたとき変更したセルのある行の A列に保存した日付を表示させたいです。 「この行がいつ変更されたか」を知りたいのです。 わかりにくくてすみません。 マクロは初心者です。(たぶんマクロでないと無理?) よろしくお願いします。

  • VBAで日付と時刻の計算に困っています

    すでに入力されている日本の日付と時刻を、欧州の日付と時刻に変換する というようなマクロを組みたいです。 もう少し具体的にいうと、 日本の日付と時刻が 2011/06/12 07:15:20 というような形式で入力されているセルA1があり、 そのセルA1を選択している状態でマクロを実行すると、 セルに入力されている日付と時刻を欧州の日付と時刻に変更する というマクロです。 セルA1の日付を例にすると、マクロを実行したら時差である9時間を減算して、 2011/06/11 22:15:20 という値が返ってくるようにしたいです。 DateAdd関数を使用して時刻を-9時間することはできたのですが、 時刻のみが-9時間されるだけで日付は変更できませんでした。 もしよろしければ、時間を減算しただけで日付も減算してくれるような マクロの組み方を教えていただけないでしょうか。

  • VBAでエクセルからのファイル名とテキスト化を自動で実行する方法

    マクロを実行して、エクセルのセルからファイル名とテキストファイルを自動で出力したいのですが、VBA初心者なのでプログラムの書き方がわかりません。 どうかVBAのプログラムの書き方を教えて下さい。 【マクロ実行前のエクセル状態】 1.エクセルのA列にファイル名1を入力 2.エクセルのB列にファイル名2を入力 3.エクセルのC列にテキスト出力させたい文字列を入力 【期待のマクロ動作】 ファイル名1+ファイル名2のファイル名でC列の文字列をテキストファイルで出力。 《例》 A B C 1 2 あ ⇒マクロ実行⇒ファイル名『12』テキスト内容『あ』 3 4 い ⇒マクロ実行⇒ファイル名『34』テキスト内容『い』 5 6 う ⇒マクロ実行⇒ファイル名『56』テキスト内容『う』 7 8 え ⇒マクロ実行⇒ファイル名『78』テキスト内容『え』 ・ ・ ・ ・ 上記の様に、一回のマクロ実行で入力されている列のセル全て がファイル名付きのテキストファイルとして出力をさせたいです。 申し訳ありませんが、よろしくお願いいたします。

  • VBAのDIR関数でファイル名「0005」などが「5」だけにならない様にするには?

    あるフォルダ内に有るファイル郡の名称をDir関数で取得してExcelのシートのA列に並べるマクロなんですが、0で始まる数字のファイル名の場合、セルには0が省かれて入ってしまいます。 0011なら0011とそのままセルに入れるには(文字列として入れるには?)、マクロはどう書けばいいんでしょうか? 

  • VBA マクロ セルと同じファイル名を選びたい

    Excelでマクロを組んでいます。 以下のような場合にどのように組めばいいのか、悩んでいます。 是非、ヒントを下さい。 Excelファイル「book1」でマクロを組んでいるとします。 1)book1のセルA1に入力されている文字列と同じファイル名のbookを選択できないか 2)セルA1から順にA2、A3、A4と文字列の入力がないセルまで自動的にセル番地を横へおくり、1)の操作を繰り返すことができないか ちなみに検索対象となるbookはすべて同じフォルダの中に格納されています。 よろしくお願いします。

  • ワード2000使用:表操作のマクロ化

    ワード2000使用 5行5列(A列からE列と呼ぶ)の表あり。最上部タイトル行 次の操作をマクロで表現したい。 操作:タイトル行の下行から。B列のセルに文字がないときA列のセルも文字を消す。 以上宜しくお願いします。

  • VBA でファイル分割+αの処理

    一つのexcelファイルから、ファイル分割、シート作成、A列に順にアルファベットをA、B、C、・・・と代入。ということをやりたいのですが、VBAがまだまだ初心者で困っています。 やりたいことは以下の処理です。 <元データ> A B C D E F ・・・ S 1 文字列 文字列 日付(1) 日付(2) 日付(3) 文字列 文字列 2 文字列 文字列 日付(1) 日付(2) 日付(3) 文字列 文字列 3 文字列 文字列 日付(1) 日付(2) 日付(3) 文字列 文字列 4 文字列 文字列 日付(1) 日付(2) 日付(3) 文字列 文字列 5 文字列 文字列 日付(1) 日付(2) 日付(3) 文字列 文字列 6 文字列 文字列 日付(1) 日付(2) 日付(3) 文字列 文字列 ※F列~S列までは文字列です。 ※C列~E列は日付形式で、YYYY/MM/DDです。 これを、 (1)C列の日付(1)を元に日付ごとにファイル分割 ⇒(2)B列から元データの形式のまま、Sheet1に張り付け ⇒(3)元データの行数分、シート作成(シート内には何も入れず) ⇒(4) (2)のA列に順にアルファベットをA、B、C、・・・と代入。 ということをやりたくて試行錯誤しています。。。 VBAは勉強し始めたばかりで、非常に困っています。 丸投げ質問で恐縮ですが、ご教授いただけますか。 宜しくお願いします。

  • VBAでおしえてください

    お世話になります 同一フォルダ内に5個のエクセルファイルがあります。 中身の形式は一緒でA1~Y50まで数値が並んでいます。 (5個の違いは、追い番でファイル名を変えただけです) このファイルの行番号1に1行を挿入して、5個のファイルの同じセルに同じ文字を 書き込みたいです。 A1セル:東京 B1セル:新潟 ・ ・ Y1:山形 これのマクロを組みたいのですが、お教え願えないでしょうか? よろしくお願いします 分かりづらい文章ですみません

  • VBA_複数条件下での色付

    お願いします。 (XP・エクセル2003) たとえばA列に『あ』『い』『う』の3種の文字のいづれかが1行目から100行目まで並んでいるとします。(空白セルはなく必ずいずれかの文字が入っている) 『あ』の文字のときにはそのセルの色を赤色、『い』の文字なら青、『う』の文字なら黄とかえるマクロを作りたいのですが、方法がわかりません。 教えてください。 お願いします。

専門家に質問してみよう