ある場所に比較するCSVファイルを2個格納しております。
ただしCSVファイル名は可変であります。
その場合 Set objTextA = objFSO.OpenTextFile("C:\" & "A.csv")と特定して呼び出せません。
名前が可変なときのため、そのパスにあるCSV2個を順に呼び出すにはどうすればよいのでしょうか。
また呼出し後、split関数により、配列に入れます。A配列とB配列に格納したとします。
一つ一つ比較していきたいのですが、
以下のような構文の場合、比較で違ったときテキストに書き込みとなりますでしょうか?
for i=0 to i=10 step 1
if strcomp(a(i) ,b(i))) = 1 then
テキストに書き込み
endif
next
No.1ベストアンサー
- 回答日時:
>名前が可変なときのため、そのパスにあるCSV2個を順に呼び出すにはどうすればよいのでしょうか。
フォルダ内の全ファイルから拡張子がCSVなものを検索するしか無いかと。
しかも、同じフォルダ内に別のCSVファイルがあるとちゃんと比較することが出来ないため、比較したいCSVファイル以外は無視するようにする必要があります。
http://officetanaka.net/excel/vba/tips/tips36.htm
ファイルの検索方法については上記あたりを参考に。
>以下のような構文の場合、比較で違ったときテキストに書き込みとなりますでしょうか?
For i = 0 to 10
If a(i) = b(i) Then
'書き込み処理
EndIf
Next i
大体合ってますが、こんな感じにした方がいいかと。
For文のStep 1については省略可能ですし、文字列の比較は=でも可能ですよ。
ただ、=での比較はアルファベットの大文字小文字が違うだけでも違う内容だと判断されるため、大文字小文字を問わずに比較したい場合はStrcomp関数を使った方が良いかも。
ちなみに、2つのファイルを読み込んだ配列の要素数が可変の場合はUBound関数を使うと良いですよ。
num = UBound(a)でnumの中にA配列の要素数が入ります。
同様に、num = UBound(b)だとB配列の要素数です。
No.2
- 回答日時:
先日、他の方も言っておられましたが、ちょっとは自分で調べたら?
VBScriptのリファレンスをちょろっと読むだけで出てくるような
低レベルな質問ばっかりなんですが。
こんなところで、たまたま親切な人が通りかかって
回答をくれるのを待つよりも、よっぽど早いし確実ですよ。
FileSystemObjectの GetFolder に対象のフォルダのパスを指定して
フォルダオブジェクトを取得します。
フォルダオブジェクトの Filesコレクション をFor Each で回せば
特定のフォルダ内のファイルをひとつづつ処理できます。
このとき、拡張子がcsvを判定して、ループを抜けるようにしないと
どうでもいいファイルも処理するので気をつけてください。
ま、そのフォルダ内のファイルは全部csvという前提なら別に構いませんが。
csvが3個以上あった場合とか、
実際の処理でファイルの入力順序を意識する必要があるのか?ないのか?とか
いろいろ気になる部分はありますが・・・
調べてからの確認です。
プログラム自体初心者なので、リファレンスを読んでも自分のやりたい関数はどれを使用すれば実現できるのかなどなかなかわからないわけです。
すいません。
CSVは2個限定なのですが、
読み込む順番はどうなるのでしょうか。どちらを先に読み込むかがきになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) 配列操作について 5 2023/04/18 07:27
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
RGBのバイナリデータをCImageに...
-
ファイル内の(&H0A)を(&H0D0A)...
-
DXFファイルをVBで取り込み、図...
-
VBAでテキストファイルを複数開...
-
インデックスが配列の境界外で...
-
VBSにてCSV読み込みし比較
-
プログラミング言語 rubyを用...
-
awk getlineをもう一度ファイル...
-
VBAでテキストファイルの改行を...
-
VB5にてコンパイルしたプログラ...
-
バイナリファイルの一部分をカ...
-
グレースケール画像の画素値を得る
-
バイナリファイルでOutOfMemory...
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
エクセルで複数のコメントのサ...
-
バッチファイル 二つ上のディ...
-
カンマ区切りのCSVファイルから...
-
エクセルのハイパーリンクがコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DXFファイルをVBで取り込み、図...
-
バイト型のデータを16進表記で...
-
VBAでテキストファイルの改行を...
-
Cで2次元配列にCSVファイルを...
-
VBAでテキストファイルを複数開...
-
バイナリファイルでOutOfMemory...
-
テキストファイルを後ろから読...
-
[VBS] 16進数でバイナリファイ...
-
バイナリ読み込み時のデータ受...
-
ファイル入力のデータを構造体...
-
RGBのバイナリデータをCImageに...
-
VBでLOOKUP機能
-
Excel VBAで画像解析
-
バイナリ出力
-
VBScriptの配列は、要素数を指...
-
バイナリファイルの一部分をカ...
-
perl 特定の文字列をdatファイ...
-
awk getlineをもう一度ファイル...
-
CSVファイルによる検索の高速化
-
ファイル内の(&H0A)を(&H0D0A)...
おすすめ情報