Excel VBA質問箱 IV

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

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


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

【53025】行数取得 まる 07/12/12(水) 13:31 質問[未読]
【53026】Re:行数取得 じゅんじゅん 07/12/12(水) 14:40 発言[未読]
【53027】Re:行数取得 まる 07/12/12(水) 14:58 発言[未読]
【53028】Re:行数取得 じゅんじゅん 07/12/12(水) 16:07 発言[未読]
【53032】Re:行数取得 まる 07/12/12(水) 16:54 発言[未読]
【53038】Re:行数取得 じゅんじゅん 07/12/12(水) 18:19 発言[未読]
【53055】Re:行数取得 まる 07/12/13(木) 0:14 お礼[未読]

【53025】行数取得
質問  まる  - 07/12/12(水) 13:31 -

引用なし
パスワード
   はじめまして。
エクセルを仕事でメインに使用しているのですが、
いつも作業が遅いといわれるので
マクロを勉強することにしました。
毎回数十個のxlsファイルを手で数えているので
手始めに行数を数えるマクロを作ろうと思っています。
まずは自動記録からはじめてみました。

1000件以上あるDBの件数を取得するマクロです。
自動記録でやってみると↓こんな感じでした。
毎回件数が変わるのに、セルを指定することは出来ません。
Selection.Rows.Countを使って件数を取得するには
どうしたらよいのでしょうか?
アクティブシートのA列を数えるマクロにしようと思っています。

Sub 行数取得()

  Range("A1").Select
  Selection.End(xlDown).Select
  Range("A1176").Select
  ActiveCell.FormulaR1C1 = "=COUNTA(R[-1174]C:R[-1]C)"
  Range("A1176").Select

End Sub

お力をお貸しいただけると幸いです。

【53026】Re:行数取得
発言  じゅんじゅん  - 07/12/12(水) 14:40 -

引用なし
パスワード
   ▼まる さん:
>はじめまして。
>エクセルを仕事でメインに使用しているのですが、
>いつも作業が遅いといわれるので
>マクロを勉強することにしました。
>毎回数十個のxlsファイルを手で数えているので
>手始めに行数を数えるマクロを作ろうと思っています。
>まずは自動記録からはじめてみました。
>
>1000件以上あるDBの件数を取得するマクロです。
>自動記録でやってみると↓こんな感じでした。
>毎回件数が変わるのに、セルを指定することは出来ません。
>Selection.Rows.Countを使って件数を取得するには
>どうしたらよいのでしょうか?
>アクティブシートのA列を数えるマクロにしようと思っています。
>
>Sub 行数取得()
>
>  Range("A1").Select
>  Selection.End(xlDown).Select
>  Range("A1176").Select
>  ActiveCell.FormulaR1C1 = "=COUNTA(R[-1174]C:R[-1]C)"
>  Range("A1176").Select
>
>End Sub
>
>お力をお貸しいただけると幸いです。

Sub try()
 Dim i As Long
 i = Range("A" & Rows.Count).End(xlUp).Row
 Range("A" & i + 1).Formula = "=COUNTA(A2:" & Range("A" & i).Address(0, 0) & ")"
End Sub
こんな感じのではどうでしょう?

【53027】Re:行数取得
発言  まる  - 07/12/12(水) 14:58 -

引用なし
パスワード
   ▼じゅんじゅん さん:

>Sub try()
> Dim i As Long
> i = Range("A" & Rows.Count).End(xlUp).Row
> Range("A" & i + 1).Formula = "=COUNTA(A2:" & Range("A" & i).Address(0, 0) & ")"
>End Sub
>こんな感じのではどうでしょう?

ありがとうございます。
標準モジュールに書き込み実行してみましたが
まったく反応がなかったのですが、
書いていただいている意味は理解できたのですが
どうして動かないのかが疑問です。

【53028】Re:行数取得
発言  じゅんじゅん  - 07/12/12(水) 16:07 -

引用なし
パスワード
   ▼まる さん:
>▼じゅんじゅん さん:
>
>>Sub try()
>> Dim i As Long
>> i = Range("A" & Rows.Count).End(xlUp).Row
>> Range("A" & i + 1).Formula = "=COUNTA(A2:" & Range("A" & i).Address(0, 0) & ")"
>>End Sub
>>こんな感じのではどうでしょう?
>
>ありがとうございます。
>標準モジュールに書き込み実行してみましたが
>まったく反応がなかったのですが、
>書いていただいている意味は理解できたのですが
>どうして動かないのかが疑問です。

例えばセルA2〜A1000にデータがあったとして、
セルA1001に数式を出したいと言う事ではないのでしょうか?

【53032】Re:行数取得
発言  まる  - 07/12/12(水) 16:54 -

引用なし
パスワード
   ありがとうございます。
最終行の真下のセルに入った件数を
開いている他のbookの別セルに貼り付けるように
してみました。
でも切り取ると値貼付ができないので
一旦切り取り、その後貼り付けたセルをコピー→値貼付
というようにしました。
スムーズではないんですが・・・

Sub 件数確認()
 Dim i As Long
 i = Range("A" & Rows.Count).End(xlUp).Row
 Range("A" & i + 1).Formula = "=COUNTA(A2:" & Range("A" & i).Address(0, 0) & ")"
 Range("A" & i + 1).Select
  Selection.Cut
  Windows(KARI_F).Activate
  Range("G9").Select
  ActiveSheet.Paste
  Selection.Copy
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
End Sub

【53038】Re:行数取得
発言  じゅんじゅん  - 07/12/12(水) 18:19 -

引用なし
パスワード
   ▼まる さん:
>ありがとうございます。
>最終行の真下のセルに入った件数を
>開いている他のbookの別セルに貼り付けるように
>してみました。
>でも切り取ると値貼付ができないので
>一旦切り取り、その後貼り付けたセルをコピー→値貼付
>というようにしました。
>スムーズではないんですが・・・
>
>Sub 件数確認()
> Dim i As Long
> i = Range("A" & Rows.Count).End(xlUp).Row
> Range("A" & i + 1).Formula = "=COUNTA(A2:" & Range("A" & i).Address(0, 0) & ")"
> Range("A" & i + 1).Select
>  Selection.Cut
>  Windows(KARI_F).Activate
>  Range("G9").Select
>  ActiveSheet.Paste
>  Selection.Copy
>  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
>    :=False, Transpose:=False
>End Sub

Sub 件数確認2()
 Dim i As Long
 i = Range("A" & Rows.Count).End(xlUp).Row
 With Range("A" & i + 1)
    .Formula = "=COUNTA(A2:" & Range("A" & i).Address(0, 0) & ")"
    Windows(KARI_F).Activate
    ActiveSheet.Range("G9").Value = .Value
 End With
End Sub
こうゆう事でしょうか?

【53055】Re:行数取得
お礼  まる  - 07/12/13(木) 0:14 -

引用なし
パスワード
   ▼じゅんじゅん さん:
> ActiveSheet.Range("G9").Value = .Value
> End With
この1行がなかなか探してもみつからないんです。
ありがとうございました。
これからももっと沢山サンプルなどをみて勉強します。
ありがとうございます。

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