こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フィルタオプション設定をVBAで処理したものに、さらに連番(ナンバリング)もされるようにVBAを作成し直したい。

よろしくおねがいします。

フィルタオプション設定を下記のようにVBAにて既に作成したものがあります。(ボタンをクリックするだけで、データが抽出されるようにしてあります。)
Sub Macro1()
Dim myRow1 As Long, myRow2 As Long
myRow1 = Sheets("職員名簿").Range("B65536").End(xlUp).Row
myRow2 = Sheets("東京都").Range("B65536").End(xlUp).Row
If myRow2 >= 5 Then
Sheets("東京都").Range("B5:T" & myRow2).ClearContents
End If
Sheets("職員名簿").Range("A2:S" & myRow1).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("データ").Range("A2:F32"), CopyToRange:=Range("B5:T5"), _
Unique:=False
End Sub

この実行時に、A列に抽出されたデータの件数を自動的に1からの連番にて入る(ナンバリングされる)ように、VBAを追加作成し直したいのですが、
どうしたら良いか分からず、教えていただきたいと思います。

既に作成してある、VBAを実行した後に、A列のセル一つ一つに、
=SUBTOTAL(3,B$6:B6)
などのように、関数を入れて抽出した行分、コピーしていけばいいのではないか。とおっしゃるかもしれませんが、
作成は私の仕事なのですが、実際これを使っていくのは、私ではなく上司なので(エクセル超初心者で使いこなせない)、

データ抽出と同時に、A列に番号が連番されていくように、
ボタン一つで、データ抽出とナンバリングができるように、
VBAを追加作成し直したいのです。

どういう命令文を追加すればよろしいのでしょうか。
よろしくおねがいいたします。

投稿日時 - 2008-04-02 14:29:01

QNo.3915761

困ってます

質問者が選んだベストアンサー

質問者提示のコードで上手くいっているなら、
●●●で囲まれたコードを追加するだけです。

'------------------------------------------
Sub Macro1()
 Dim myRow1 As Long, myRow2 As Long
 myRow1 = Sheets("職員名簿").Range("B65536").End(xlUp).Row
 myRow2 = Sheets("東京都").Range("B65536").End(xlUp).Row
 If myRow2 >= 5 Then
  Sheets("東京都").Range("B5:T" & myRow2).ClearContents
 End If
 Sheets("職員名簿").Range("A2:S" & myRow1).AdvancedFilter Action:=xlFilterCopy, _
  CriteriaRange:=Sheets("データ").Range("A2:F32"), CopyToRange:=Range("B5:T5"), _
  Unique:=False

'●●● 
 Dim R As Long
 For R = 6 To Range("B65536").End(xlUp).Row
   Cells(R, "A").Value = R - 5
 Next R
'●●●

End Sub
'----------------------------------------------
 
以上。
 

投稿日時 - 2008-04-02 15:39:33

お礼

まさに!
まさに私が求めていた回答です。

回答、本当にありがとうございます。

すごく勉強になりましたし、これを使わせていただきたいと思います。

本当にありがとうございました。

投稿日時 - 2008-04-02 16:04:36

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

=IF(B6="","",SUBTOTAL(3,B$6:B6))
とか入れてたっぷりと下フィルして差し上げておく方法はないでしょうか?

投稿日時 - 2008-04-02 14:55:41

お礼

回答ありがとうございます!

IF文!!!
なるほど~。 目からウロコでした。 そうですよね、「もっと単純に考えればよかったんだぁ~!」と、hallo-2007さんの回答を見て思いました。
「VBAじゃなければ…、VBAを使わなければ…」と頭でっかちになっていたようです。

本当にありがとうございました。

投稿日時 - 2008-04-02 15:50:14

あなたにオススメの質問