|
▼にしもり さん:
こんにちは。
> 引数は省略できません、と出ます。
よく見てませんが、とりあえず
> Do Until i = EOF
は
> Do Until i = EOF(1)
です。カッコの中の1 は
ファイルに対するアクセス番号で、
> Open myTxtFile For Input As #1
の#1 のことです。
でも、そんなことより
なぜ
Openステートメントや
Do Until EOF(#1)
Loop
を使ってファイルを開いているのですか?
Openステートメントはテキストファイルを開くときの
ステートメントです。
> M.xlsというファイル
は Excel Book でしょ?
Bookを開くのは Workbooks.Openメソッドです。
これを使わないと、ワークシートの状態で開けません。
で、Workbooks.Openでその<M.xls> を開いて、
最初のシートに↓こうなっていたとします。
A B C
ID JUSHO SENDID
1 東京都千代田区1-1
1 東京都千代田区1-1
1 東京都練馬区1-1
1 東京都練馬区1-1
1 東京都千代田区1-1
1 東京都豊島区1-1
1 東京都千代田区1-2
2 東京都中央区1-1
3 東京都渋谷区1-1
メール用番号をC列に書き入れるにはまず、これをA列,B列で
ソートしておきます(優先順位1位:A列)
ID JUSHO SENDID
1 東京都千代田区1-1
1 東京都千代田区1-1
1 東京都千代田区1-1
1 東京都千代田区1-2
1 東京都豊島区1-1
1 東京都練馬区1-1
1 東京都練馬区1-1
2 東京都中央区1-1
3 東京都渋谷区1-1
ソートされていれば、考え方のひとつとして、
'A列の2行目から下へ順に見ていって
For i = 2 to データ最終行番号
If Cell(i,1) の値が Cells(i-1,1)の値とちがっていたら、
SendId を初期値1 にして、C列に この値を入れる。
Else ひとつ上と同じIDなら、
B列の値をひとつ上のセルの値と較べ、
違っていれば、SendId番号を1つ増やして、これをC列に、
同じならば、現在の変数SendId をC列に、
End If
End If
Next
とまぁ、こんな風にしても番号付けができるかと思います。
|
|