Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


19512 / 76736 ←次へ | 前へ→

【62655】Re:グループ内で番号付与するには
発言  kanabun  - 09/8/19(水) 13:40 -

引用なし
パスワード
   ▼にしもり さん:
こんにちは。

> 引数は省略できません、と出ます。
よく見てませんが、とりあえず
>  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

とまぁ、こんな風にしても番号付けができるかと思います。

0 hits

【62651】グループ内で番号付与するには にしもり 09/8/19(水) 12:55 質問
【62655】Re:グループ内で番号付与するには kanabun 09/8/19(水) 13:40 発言
【62661】Re:グループ内で番号付与するには にしもり 09/8/19(水) 15:52 質問
【62662】Re:グループ内で番号付与するには kanabun 09/8/19(水) 16:26 発言
【62663】Re:グループ内で番号付与するには にしもり 09/8/19(水) 16:53 お礼

19512 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free