
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[エクセル]連続する指定範囲か...
-
エクセルで、絶対値の平均を算...
-
array関数で格納した配列の型を...
-
数字配列データを画像に変換す...
-
VB6.0 ファイルの一括読込み
-
.NET - 配列変数を省略可能の引...
-
スプレットシートのGetTextにつ...
-
Sessionに格納した二次元配列を...
-
Excelのセルの色指定をVBAから...
-
16進数から2進数へ
-
DataSetから、DataTableを取得...
-
SUMPRODUCT関数を用いた最小値
-
配列のSession格納、及び取得方...
-
【VBS】innerTEXTで取得した内...
-
仮想リストコントロールの表示
-
VBAで指定期間の範囲を抽出し、...
-
Excelで指定した日付から過去の...
-
Application.Matchで特定行の検索
-
長音「ー」とマイナス「-」の...
-
特定のセルが空白だったら、そ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、絶対値の平均を算...
-
[エクセル]連続する指定範囲か...
-
表にフィルターをかけ、絞った...
-
ExcelのINDEXとMATCH関数でスピ...
-
Excelのセルの色指定をVBAから...
-
array関数で格納した配列の型を...
-
【VBA】ユーザーフォーム リス...
-
Excel オートフィルタのリスト...
-
配列がとびとびである場合の書き方
-
iniファイルのキーと値を取得す...
-
.NET - 配列変数を省略可能の引...
-
DataSetから、DataTableを取得...
-
読み込みで一行おきに配列に格納
-
エクセルでエラーを無視して一...
-
VBAでの100万行以上のデータの...
-
配列のSession格納、及び取得方...
-
Datatableへの代入
-
[VBA]改行入りのセルの値を配列...
-
SUMPRODUCT関数を用いた最小値
-
エクセル 条件を指定した標準...
おすすめ情報