アプリ版:「スタンプのみでお礼する」機能のリリースについて

テキストファイルに必要な部分だけ、別テキストに吐き出したいのですが、

元テキストの例
00,05,"0002027600002010102703154301253645 0001"
01,00,"STATUS-C "
02,00,"* あああああ 15時44分 *"
02,00,"* ABCDE 15時44分 *"
02,00,"* 123687あああ 15時51分 *"

上記のような、テキストファイルより、" "の間の内容を別テキストに
吐き出したいのですが、VBAでどのように記述したら良いですか?

開始の"は7桁目と決まっていますが、終わりの"は文字の最後に付くので
桁数は決まっていません。
別テキストに吐き出すときは、" "も取り除いて落としたいです。

簡単な説明で申し訳ありませんが、ACCESS2003 VBAのコーディングを
教えてください。

A 回答 (2件)

shut0325です。




VBAでのコードは以下の2行です。
ボタンのクリックイベントにでも仕込んでください。

'---コード開始---

'データのインポート
DoCmd.TransferText acImportDelim, "myImport", "T_work", "C:\Import.txt", False, ""
'データのエクスポート
DoCmd.TransferText acExportDelim, "myEX", "T_work", "C:\Export.txt", False, ""
'---コード終わり---

これをきちんと機能させるためにはインポート/エクスポート用に「定義ファイル」を作らなければなりません。
今回はインポートの定義ファイルを"myImport" エクスポート用を"myEX”としています。

定義ファイルの作り方は、インポート/エクスポートウィザードの一番下に、「設定」というボタンがあるので、それを押し、設定をして、保存します。保存が済んだらインポート/エクスポート処理はキャンセルしてかまいません。

インポートではフィールド1と2の「スキップ」をチェック、エクスポートは「文字列の引用符」を「なし」にする以外は特にいじらなくてよいと思います。

"T_work"とは作業用のテーブル名です。インポートとエクスポートで一致していれば任意の名前でかまいません。

"C:\Import.txt" "C:\Export.txt" はそれぞれ、元ファイルと吐き出したテキストファイルですが、ここではCドライブ直下に元ファイル(Import.txt)があり、書き出しファイルは同じくCドライブ直下にExport.txtという名前で保存するようにしています。
任意で書き換えてもらってかまいません。
「ACCESS2003 VBAテキスト編集」の回答画像2
    • good
    • 0
この回答へのお礼

shut0325さん

詳しい説明で大変ありがとうございます。
例のようにやってみたらOKでした

ありがとうございました

お礼日時:2011/06/04 13:59

まずはVBAを用いないで手作業で目的を果たす方法を考えたほうがいいと思います。



元テキストを見ると、カンマ区切りのテキストで、文字列は必ず" "で区切られているので、「テーブルのインポート」で、該当のテキストデータを容易に" "のない、テキストの部分だけをテーブルとして読み込めます。

カンマ区切りで1つのフィールドとみなすので、テキスト部は3つめのフィールドになります。

具体的な読み込み方は、
1.「テーブル」欄(「デザインビューでテーブルを、、」とかあるところの何もない(白いバック)ところで、右クリック→「インポート」
2.ファイルの種類を「テキストファイル」にして、該当のデータを選んで「インポート」
3.ウィザードが開くので、最初の画面で、「区切り記号つき」で次へ
4.フィールド区切り記号:「カンマ」 テキスト区切り記号:" として次へ
5.データを保存する場所:どちらでも好みのほうで。 次へ
6.フィールド1とフィールド2の「このフィールドをインポートしない」にチェック
7.「主キーを設定しない」にチェック 次へ
8.好きなテーブル名を決めて(5で新規作成を選んだ場合)完了。


出来たテーブルをテキストとしてエクスポートすれば完成です。
1.該当テーブルを右クリックして「エクスポート」
2.ファイルの種類を「テキストファイル」 ファイル名は任意 で 「すべて」
3.「区切り記号付き」にチェック 次へ
4.区切り記号は今回は関係なしなので、どれでも。
テキスト区切り記号を「なし」 にして 完了。

今回の処理の利用頻度が低いならば、手作業でよいかと思います。
多い場合はマクロやVBAで行うといいかなと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!