テキストファイルに必要な部分だけ、別テキストに吐き出したいのですが、
元テキストの例
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のコーディングを
教えてください。
No.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という名前で保存するようにしています。
任意で書き換えてもらってかまいません。
No.1
- 回答日時:
まずはVBAを用いないで手作業で目的を果たす方法を考えたほうがいいと思います。
元テキストを見ると、カンマ区切りのテキストで、文字列は必ず" "で区切られているので、「テーブルのインポート」で、該当のテキストデータを容易に" "のない、テキストの部分だけをテーブルとして読み込めます。
カンマ区切りで1つのフィールドとみなすので、テキスト部は3つめのフィールドになります。
具体的な読み込み方は、
1.「テーブル」欄(「デザインビューでテーブルを、、」とかあるところの何もない(白いバック)ところで、右クリック→「インポート」
2.ファイルの種類を「テキストファイル」にして、該当のデータを選んで「インポート」
3.ウィザードが開くので、最初の画面で、「区切り記号つき」で次へ
4.フィールド区切り記号:「カンマ」 テキスト区切り記号:" として次へ
5.データを保存する場所:どちらでも好みのほうで。 次へ
6.フィールド1とフィールド2の「このフィールドをインポートしない」にチェック
7.「主キーを設定しない」にチェック 次へ
8.好きなテーブル名を決めて(5で新規作成を選んだ場合)完了。
出来たテーブルをテキストとしてエクスポートすれば完成です。
1.該当テーブルを右クリックして「エクスポート」
2.ファイルの種類を「テキストファイル」 ファイル名は任意 で 「すべて」
3.「区切り記号付き」にチェック 次へ
4.区切り記号は今回は関係なしなので、どれでも。
テキスト区切り記号を「なし」 にして 完了。
今回の処理の利用頻度が低いならば、手作業でよいかと思います。
多い場合はマクロやVBAで行うといいかなと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Excel(エクセル) テキストの背後にあるオブジェクトとは 3 2023/01/03 20:22
- 大学受験 資格試験などの勉強で過去問題集の解説を理解する時、分からない用語を調べてどうするのが良いですか? 問 3 2023/06/18 17:18
- Excel(エクセル) Excel VBAで、行の高さを、上下1文字分程度高くしたい 3 2023/04/23 00:17
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスにセルの値を...
-
テキストボックスの中身をリセ...
-
テキストエリア内の文字列にリ...
-
フォームのテキストの入力数字...
-
Access2000 実行時エラー '3061':
-
IP Address 入力フォームについて
-
VB.NETで数十行のプログラムを...
-
時計の:を点滅させたい
-
スクロールバーが一番したまで...
-
漢字入力した値のカタカナ変換...
-
空白で入力フォームのボタンを...
-
値が無いと次へボタンを押して...
-
アクセスのフォームから検索を...
-
pdfのテキスト全文コピー、テキ...
-
RPG(AS400)の本、サイトってあ...
-
VBAからPDFのテキストフィールド
-
WebBrowserコントロールとMicro...
-
テキスト内の重複文字検索
-
変数に256文字以上のテキストを...
-
ホームぺージ制作で間違って重...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
変数に256文字以上のテキストを...
-
RPG(AS400)の本、サイトってあ...
-
ホームぺージ制作で間違って重...
-
VB6.0 でメニューを作りたいん...
-
改行含むテキストの表示の仕方
-
pdfのテキスト全文コピー、テキ...
-
VB.NET2005 DataGridViewでレコ...
-
コモンダイアログのshowopenに...
-
VBAでホームページからコピーし...
-
VS2008 C# ボタンのテキストを...
-
テキストエリア内の文字列にリ...
-
'2465'指定した式で参照してい...
-
VBAからPDFのテキストフィールド
-
チェックボックスのテキストを...
-
VBSでMid関数を使ったらエラー...
-
ドラッグ&ドロップからの取得
-
VB.NET メッセージボックスの表...
おすすめ情報