質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

1499閲覧

ACCESS VBA 128byte毎に改行したい

aki_matrix

総合スコア3

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2020/08/12 02:42

編集2020/08/12 06:29

バッチファイルを使用して128カラム毎に改行する処理を作成しようとしたのですが、
変数に8190文字以上入れると不具合を起こすようで、上手くいきませんでした。
ですので、ACCESS VBAを利用して実現しようとしています。

128カラム毎だと大変なので、10カラム毎に改行する処理を考えますと、、、

AA12345678BB%abcdefgCC 2 4 6 8DD% b d f EE12345678

のようなtxtデータを以下のように更新したいと考えています。

AA12345678
BB%abcdefg
CC 2 4 6 8
DD% b d f
EE12345678

実際の文字列は8190文字以上を想定している為、EE12345678より先もある(5行以上で変動する)
パターンで考えたいと思います。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DreamTheater

2020/08/12 02:47

なぜACCESS-VBAなのですか? VBScriptやPowershellという選択肢もあります。
aki_matrix

2020/08/12 03:12

後続の処理として、改行後のデータをACCESSのデータベースに取り込もうとしている為になります。 既に128カラム改行のデータを取り込む処理はACCESSにて出来ている為、同時に記述をした方が、管理しやすいかな、、と思いまして。 とはいえ、PowerShellなどであっさり出来るようでしたら、そちらも検討する必要があるのかもしれません。。
mako1972

2020/08/12 03:13

改行して意味ありますか。 出力形式はまさかaccessじゃないですよね。
mako1972

2020/08/12 03:15

縦持ちのデータに変換したいという質問だと しっくりくると思いますけど 改行だとまた意味が変わります。
sazi

2020/08/12 03:39

どのような内容のファイルなのでしょう?(日本語をコードに変換したような感じがしますけど) 128カラムとか10カラムと言われているのは何ですか?(バイト数の事ですか?それとも文字数?) 128を10では割り切れませんが大丈夫なんですか? またそれは文字の途中で区切られる事が無いまたは区切られても大丈夫なのでしょうか?
sazi

2020/08/12 03:45

> バッチファイルを使用して128カラム毎に改行する処理を作成しようとしたのですが、 > 変数に8190文字以上入れると不具合を起こすようで、上手くいきませんでした。 変数に格納できるサイズだけの話なら、VBAのString型を使用すれば良いだけの話だと思いますけど、解決したい問題は何ですか?
aki_matrix

2020/08/12 04:30

>>mako1972 >> sazi すみません、128byteの事です。 横長のデータなのですが、実際は128byte毎の明細になっていて、 128byteで改行すると、マルチフォーマットのデータになります。 各行の先頭2byteが判別記号になっている為、その部分を読みたい、かつ見やすくする為128byteで改行したいと思っています。 意図としては、下と同じ事をVBAでする場合、どのように記述すれば良いものか 調べても分からなかったもので、、 ---------------------------------------- @echo off setlocal enabledelayedexpansion ( for /f "delims=" %%A in (INPUT.txt) do call :SUB "%%~A" )>OUTPUT.txt type OUTPUT.txt exit /b :SUB set "A=%~1" set N=0 :LOOP if "!A:~%N%,128!"=="" exit /b echo=!A:~%N%,128! set /a N+=128 goto LOOP
guest

回答1

0

ベストアンサー

ファイルを読み取りでOPENし、InputBを使用すれば、特定のバイト数毎に順次読み取れるので、目的に合致しているのではないかと思います。

ファイルへ書き戻すのではなく、そのままテーブルに追加するようにする方が効率的だと思います。

以下参考
テキストファイル:データを読み込む(Input 関数・InputB 関数)
InputB

投稿2020/08/12 05:15

編集2020/08/12 05:21
sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2020/08/12 06:06 編集

どこにマイナス評価される理由があるのかさっぱりです。 質問者以外で、理由も付けずに、マイナス評価する位なら、別途回答されると気付く点もあるのですが。
aki_matrix

2020/08/12 06:25

回答してくださりありがとうございます。 とっかかりが無かったので、まずはここから調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問