
VBA-読み込んだテキストファイルを並び替えて書き出したい
ch1=FreeFile
Open A for Input as ch1
ch2=FreeFile
Open B for Input as ch2
DO while Not EOF(ch1) Line Input #ch1,buf
Print #ch2,buf
Loop
Close #ch1,#ch2
で読み込み、書き出すことはできました。
やりたいことは、書き出す時に、項目を並べ替えたいのです。
例
にんじん りんご ねこ
だいこん バナナ いぬ
↓
りんご ねこ にんじん
バナナ いぬ だいこん
よろしくお願いいたします。
区切りはタブです。
No.2ベストアンサー
- 回答日時:
#1です。
例示のコードは、配列内容を完全に入れ替えますので、ご希望の順に調整してください。
forループの部分です。
ありがとうございます。
無事できました!!
並び変えの最後、「範囲がない」といわれ、
んっ?とちょっとあせったのですが、
配列は0からということを思い出しました(;一_一)
本当にありがとうございました。
No.1
- 回答日時:
1)文字型配列を2個宣言する
2)文字型配列の個数を格納する変数を2個宣言する
3)Split関数で区切り文字にvbTab or Chr(9)を指定して、読み取った文字列を分解し配列1で受け取る。
4)文字型配列を反転させる(配列1を配列2に)
5)join関数で区切り文字にvbTab or Chr(9)を指定して、反転させた配列を書き出し用文字列に連結する
6)書き出し用文字列を出力する
dim strArray1() as string
dim strArray2() as string
dim nArray1 as long
dim nArray2 as long
dim i as long
DO while Not EOF(ch1)
Line Input #ch1,buf
’バッファをタブで区切って配列1に格納する
strArray1()=Split(buf, vbTab)
’バッファをタブで区切った配列1の件数を取得する
nArrey1=Ubound(strArray1())
'反転用配列を用意するので同じことを繰り返す
’バッファをタブで区切って配列2に格納する
Array2()=Split(buf, vbTab)
’バッファをタブで区切った配列2の件数を取得する
nArrey2=Ubound(strArray2())
'配列1を逆転させて配列2に格納する
for i = 0 to nArrey1
Array2(i) = Array1(nArray - i)
next i
’配列2をタブで連結してバッファに格納する
buf = join(strArray2(), vbTab)
Print #ch2,buf
Loop
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
教えて!gooグレードポイントがdポイントに変わります!
dアカウント連携を行っていただくと、グレードに応じて「dポイント」が進呈されるようになります。
-
VBAでcsvファイルを読み込んで並び順を変える方法
その他(プログラミング・Web制作)
-
csvファイル内にてソートする方法
Visual Basic(VBA)
-
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
4
テキストファイルの一部分を抽出する方法について
Visual Basic(VBA)
-
5
VBAでのテキストファイル編集について
Visual Basic(VBA)
-
6
VBAでテキストファイルを複数開いて順番に処理する方法がわからないです。
Visual Basic(VBA)
-
7
(VBA) 配列の文字列を昇順で並べ替えたい
PowerPoint(パワーポイント)
-
8
テキストファイルを直接置換する方法
Visual Basic(VBA)
-
9
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
10
CSVファイルの指定列だけを読み込んでEXCELに表示したい
Excel(エクセル)
-
11
EXCEL VBAでテキストファイルの特定の場所にデータを書き込む方法
Visual Basic(VBA)
-
12
EXCELマクロのEXE化
Visual Basic(VBA)
-
13
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
VBAで文字列を数値に変換したい
Excel(エクセル)
-
16
テキストファイルを後ろから読む方法(VB2008)
Visual Basic(VBA)
-
17
VBAでCSVファイルが使用中かどうかの確認
Visual Basic(VBA)
-
18
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
19
VBAでテキストファイルを最後まで読み込みたい
Visual Basic(VBA)
-
20
配列の参照渡しで型が一致しません。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
[エクセル]連続する指定範囲か...
-
5
ExcelのINDEXとMATCH関数でスピ...
-
6
配列がとびとびである場合の書き方
-
7
VBAでの100万行以上のデータの...
-
8
Sessionに格納した二次元配列を...
-
9
iniファイルのキーと値を取得す...
-
10
2次元配列への格納方法について
-
11
ノーツのデータをVBScriptで取...
-
12
配列のSession格納、及び取得方...
-
13
VBA-読み込んだテキストフ...
-
14
Dictionaryを使い4つの条件の一...
-
15
SUMPRODUCT関数を用いた最小値
-
16
C#で配列のフィールドを取得したい
-
17
Dictionaryのitemを効率よく配...
-
18
.NET - 配列変数を省略可能の引...
-
19
エクセル 条件を指定した標準...
-
20
構造体を使っての集約、並べ替...
おすすめ情報
公式facebook
公式twitter