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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- C言語・C++・C# 現在プログラムを作っているのですが、実行したときに写真のように結果が表示されるのですが、これを CH 2 2023/01/18 16:22
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- 大学受験 高校化学の有機分野です。 この構造式で表される立体異性体は3種類ですが この場合ってc=cに結合して 3 2022/09/28 11:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- 化学 応えを教えてください 1 2023/08/06 17:39
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのセルの色指定をVBAから...
-
エクセルで、絶対値の平均を算...
-
[エクセル]連続する指定範囲か...
-
表にフィルターをかけ、絞った...
-
INDEX(D:D,L3)の意味は?
-
iniファイルのキーと値を取得す...
-
ExcelのINDEXとMATCH関数でスピ...
-
仮想リストコントロールの表示
-
Split関数でLong配列に格納する...
-
VBA-読み込んだテキストフ...
-
【VBA】 動的な変数(定数)の指定
-
[VBA]改行入りのセルの値を配列...
-
array関数で格納した配列の型を...
-
【VBA】配列に格納したデータを...
-
Excel オートフィルタのリスト...
-
Datatableへの代入
-
SUMPRODUCT関数を用いた最小値
-
.NET - 配列変数を省略可能の引...
-
EXCEL VBA 2次元配列に格納さ...
-
Excelで配列数式を使わずにとび...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルの色指定をVBAから...
-
ExcelのINDEXとMATCH関数でスピ...
-
[エクセル]連続する指定範囲か...
-
array関数で格納した配列の型を...
-
表にフィルターをかけ、絞った...
-
エクセルで、絶対値の平均を算...
-
配列がとびとびである場合の書き方
-
[VBA]改行入りのセルの値を配列...
-
Excel オートフィルタのリスト...
-
DataSetから、DataTableを取得...
-
iniファイルのキーと値を取得す...
-
配列のSession格納、及び取得方...
-
エクセルでエラーを無視して一...
-
エクセル 条件を指定した標準...
-
Dictionaryを使い4つの条件の一...
-
読み込みで一行おきに配列に格納
-
.NET - 配列変数を省略可能の引...
-
For Nextマクロの高速化につい...
-
SUMPRODUCT関数を用いた最小値
-
VB6.0 ファイルの一括読込み
おすすめ情報