Excel VBA質問箱 IV

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

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


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

【45392】指定した文字の直前まで連番を ラーメンズ 06/12/21(木) 21:50 質問[未読]
【45395】Re:指定した文字の直前まで連番を ponpon 06/12/21(木) 22:30 発言[未読]
【45396】Re:指定した文字の直前まで連番を yoshida 06/12/22(金) 0:07 お礼[未読]
【45397】Re:指定した文字の直前まで連番を Kein 06/12/22(金) 1:15 回答[未読]
【45403】Re:指定した文字の直前まで連番を ラーメンズ 06/12/22(金) 9:34 お礼[未読]

【45392】指定した文字の直前まで連番を
質問  ラーメンズ  - 06/12/21(木) 21:50 -

引用なし
パスワード
   動的変化する行数に連番をふるようにマクロを組みたいのですが、
  ActiveCell.FormulaR1C1 = "1"
  Range("D1").Select
  Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
    Step:=1, Stop:=100, Trend:=False

上記の自動記録でつくったマクロのStop部分の指定を文字にする事ができるのでしょうか?
表は必ず

D1
--
1
2
3
4
5
合計

というように合計という文字がかならず入るので、合計の手前まで連番を振るという
ようにしたいのですが、うまくいきません。どなたかご教授願えますでしょうか。

【45395】Re:指定した文字の直前まで連番を
発言  ponpon  - 06/12/21(木) 22:30 -

引用なし
パスワード
   ▼ラーメンズ さん:
>動的変化する行数に連番をふるようにマクロを組みたいのですが、
>  ActiveCell.FormulaR1C1 = "1"
>  Range("D1").Select
>  Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
>    Step:=1, Stop:=100, Trend:=False
>
>上記の自動記録でつくったマクロのStop部分の指定を文字にする事ができるのでしょうか?
>表は必ず
>
>D1
>--
>1
>2
>3
>4
>5
>合計
>
>というように合計という文字がかならず入るので、

必ずあるなら、

  Dim FR As Variant
  FR = Application.Match("合計", Range("D:D"), 0)

で取得できると思います。

【45396】Re:指定した文字の直前まで連番を
お礼  yoshida  - 06/12/22(金) 0:07 -

引用なし
パスワード
   ありがとうございます。おかげさまで成功する事ができました。
教えていただいたマクロを実行してみると合計のあるセルが24番ですよ。
とデバッグ時にでていたので、何番目という指定でセルが指定できないかと
探してみるとCellsという便利なものに出会う事ができたので以下の方法で
連番を付けることができました。
Sub 連番()
Dim suuti
suuti = 1
  Sheets(1).Range("D1").Select
 Do While Cells(suuti, 4) <> "合計"
 Cells(suuti, 4).Select
 ActiveCell.FormulaR1C1 = suuti
 suuti = suuti + 1
 Loop
End Sub


ponponさん、親切に教えて頂きどうもありがとうございました。


▼ponpon さん:
>▼ラーメンズ さん:
>>動的変化する行数に連番をふるようにマクロを組みたいのですが、
>>  ActiveCell.FormulaR1C1 = "1"
>>  Range("D1").Select
>>  Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
>>    Step:=1, Stop:=100, Trend:=False
>>
>>上記の自動記録でつくったマクロのStop部分の指定を文字にする事ができるのでしょうか?
>>表は必ず
>>
>>D1
>>--
>>1
>>2
>>3
>>4
>>5
>>合計
>>
>>というように合計という文字がかならず入るので、
>
>必ずあるなら、
>
>  Dim FR As Variant
>  FR = Application.Match("合計", Range("D:D"), 0)
>
>で取得できると思います。

【45397】Re:指定した文字の直前まで連番を
回答  Kein  - 06/12/22(金) 1:15 -

引用なし
パスワード
   解決後ですが、連番を振るなら一般的なオートフィル機能を使って・・

Sub Line_Num()
  With Sheets("Sheet1")
   With .Range("D1")
     If .End(xlDown).Value <> "合計" Then Exit Sub
     .Value = 1
     .AutoFill .Parent.Range("D1", .End(xlDown).Offset(-1)), _
     xlLinearTrend
   End With
  End With
End Sub

などとすることも出来ます。行数が多くなると、確実にループより速いです。
(他にもいくつかやり方があります。)

【45403】Re:指定した文字の直前まで連番を
お礼  ラーメンズ  - 06/12/22(金) 9:34 -

引用なし
パスワード
   Keinさん・ponponさん
ありがとうございます。参考になります。

できた結果に喜んでいたところなんですが、合計値を見てみると絶対参照に設定した
ところがずれていました。切り取りだと絶対参照もずれてしまうのですね。新しく発生した問題もコツコツ解決していきたいと思います。

ponponさんへのお礼を投稿する際に投稿者名を間違えてしまいました。
申し訳ありませんでした。今後ともよろしくお願い致します。

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