Excel VBA質問箱 IV

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

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


6006 / 13644 ツリー ←次へ | 前へ→

【47714】セルに値があれば連番を振りたい marron 07/3/20(火) 14:28 質問[未読]
【47715】Re:セルに値があれば連番を振りたい Jaka 07/3/20(火) 14:38 発言[未読]
【47716】Re:セルに値があれば連番を振りたい Kein 07/3/20(火) 14:44 回答[未読]
【47718】Re:セルに値があれば連番を振りたい marron 07/3/20(火) 15:16 お礼[未読]
【47717】Re:セルに値があれば連番を振りたい marron 07/3/20(火) 15:05 お礼[未読]

【47714】セルに値があれば連番を振りたい
質問  marron  - 07/3/20(火) 14:28 -

引用なし
パスワード
   ABどちらかのセルに値があるもののみ、Cに連番を自動で入れたいのですが、
VBAで可能でしょうか。

マクロの記録をして、それを少し変更するくらいしかできないので、
Webを検索して、似たような事例をコピーし、アレンジしているのですが、
全部のセルに連番を振るのはなんとかクリアできたのですが、
条件があると、どうしていいのかわかりません。
行数は、その時々のデータ数で変化します(MAX300行)

 A B C 
1    
2 *   1
3  * 2
4
3  * 3

【47715】Re:セルに値があれば連番を振りたい
発言  Jaka  - 07/3/20(火) 14:38 -

引用なし
パスワード
   C2に
=IF(COUNTA(A2:B2),COUNT(C$1:C1)+1,"")
以下必要なところまで下にフィル。
マクロじゃなきゃだめ?

【47716】Re:セルに値があれば連番を振りたい
回答  Kein  - 07/3/20(火) 14:44 -

引用なし
パスワード
   これでどうかな ?

Sub Test_連番()
  Dim FR As Range, C as Range
  Dim i As Long

  Set FR = Range("A:B").Find("*", , xlValues, , , xlPrevious)
  On Error Resume Next
  With Range(Cells(1, 3), Cells(FR.Row, 3))
   .Formula = "=IF(COUNTA($A1:$B1)=1,1,"""")"
   .Value = .Value
   For Each C In .SpecialCells(2, 1)
     i = i + 1: C.Value = i
   Next
  End With
  Set FR = Nothing
End Sub
   

【47717】Re:セルに値があれば連番を振りたい
お礼  marron  - 07/3/20(火) 15:05 -

引用なし
パスワード
   Keinさん、Jakaさん、ありがとうございます。
こんなにすぐにお返事がいただけるなんて、感激しました。

PCスキルに関係なく不特定多数の方に表を作成してもらうマクロの一部分なので、
全て自動で...が条件なのです(T_T)

しかも、抽出したデータによって、セルに入る文字も位置もランダムです。
また、何行になるのかもランダムです(最大300行)

2つのセル(例:AB)のどちらかに何らかの値が入っていれば、
隣のセル(例:C)に連番を振る...というものです。

まずは、Keinさんからいただいた記述を元に、頑張ってみます。
取り急ぎお礼まで。

【47718】Re:セルに値があれば連番を振りたい
お礼  marron  - 07/3/20(火) 15:16 -

引用なし
パスワード
   Kein さんにいただいた記述でできました!
この件に関してかなり時間がかかっていたので、本当に助かりました。
ありがとうございました。

関数もままならないのに、VBAは難解ですが、
少しずつでも勉強を続けていこうと思います。

また質問するかもしれませんが、今後ともよろしくお願いいたします<(_ _)>

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