Excel VBA質問箱 IV

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

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


8184 / 13646 ツリー ←次へ | 前へ→

【34300】セル内で計算 まろにゃ 06/1/30(月) 22:07 質問[未読]
【34301】Re:セル内で計算 ponpon 06/1/30(月) 22:21 発言[未読]
【34304】Re:セル内で計算 やっちん 06/1/30(月) 22:59 発言[未読]
【34396】Re:セル内で計算 まろにゃ 06/2/1(水) 21:39 質問[未読]
【34399】Re:セル内で計算 やっちん 06/2/1(水) 22:22 発言[未読]
【34400】Re:セル内で計算 PP 06/2/1(水) 23:06 発言[未読]
【34410】Re:セル内で計算 やっちん 06/2/2(木) 8:36 発言[未読]
【34503】Re:セル内で計算 まろにゃ 06/2/4(土) 9:49 質問[未読]
【34504】Re:セル内で計算 PP 06/2/4(土) 10:46 発言[未読]
【34757】Re:セル内で計算 まろにゃ 06/2/11(土) 15:48 お礼[未読]

【34300】セル内で計算
質問  まろにゃ  - 06/1/30(月) 22:07 -

引用なし
パスワード
   既出かもしれませんが、お願いします。
A1に断続的に数値を入力するのですが、自動的にA2に合計値が出るようにする事は可能でしょうか。

元々
   A    B          
1  
2  50000

この状態で、A1に数値(例えば300)を入力すると。

   A    B          
1   300
2  50300

次回またA1に数字(例えば500)を入力すると。

   A    B          
1   500
2  50800

お手数掛けまして済みませんが
よろしくお願いします。

【34301】Re:セル内で計算
発言  ponpon  - 06/1/30(月) 22:21 -

引用なし
パスワード
   こんばんは。

こういうことでしょうか?

シートモジュールに

Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
     If .Count > 1 Then Exit Sub
     If IsEmpty(.Value) Then Exit Sub
     If .Address(0, 0) = "A1" Then
      Application.EnableEvents = False
      With Range("A2")
        .Value = .Value + Range("A1").Value
      End With
      Application.EnableEvents = True
     End If
  End With
End Sub

【34304】Re:セル内で計算
発言  やっちん  - 06/1/30(月) 22:59 -

引用なし
パスワード
   ▼まろにゃ さん:
こんばんは。
数値を積み上げるんですね。
目的はわかりませんが、A1へは手入力ならコードより
シート上だけで処理した方がいいのではないかと思います。
B1:50000
B2:=B1+A2
B3以降はB2の式をコピー。

数値の入力はA2以降にすると、B列にその時点の合計が出ます。
途中で打ち間違っても部分的に直すだけで済みますよ。

【34396】Re:セル内で計算
質問  まろにゃ  - 06/2/1(水) 21:39 -

引用なし
パスワード
   ponponさん、やっちんさん
ありがとうございます。
助かりました。

新規投稿すべきかと思いますが、すみません。
教えてください。

オートフィルタの「オプション」ですが、2つまでしか設定できないのでしょうか。
試しにマクロで記憶させて、コードを私なりに変えてみたのですがダメでした。

【34399】Re:セル内で計算
発言  やっちん  - 06/2/1(水) 22:22 -

引用なし
パスワード
   ▼まろにゃ さん:
最初の件はどう解決したのか知りたいですね。

オートフィルタの1つの列に対する条件は2つまでですよ。
マクロで条件増やせるんだったら、一般操作でも増やせてると思いますよ(^^
それ以上するのであれば
その可視セルをどこかにコピーして
またオートフィルタになるんでしょうね。

【34400】Re:セル内で計算
発言  PP  - 06/2/1(水) 23:06 -

引用なし
パスワード
   ▼まろにゃ さん:

今晩は。
先日、ichinoseさんが回答されていたと思いますので、ご参考まで

A列に
'Data1
'a
'b
'c
'ab
'bc
'ac
'abc
'とデータをセットして試されては。

Sub test()
  Dim rng As Range, rng2 As Range
  Cells(6, 1).AutoFilter field:=1, Criteria1:="=a", Operator:=xlOr, _
                   Criteria2:="=b"
  Set rng = Range("A6", Range("A65536").End(xlUp)).SpecialCells(xlCellTypeVisible).Rows
  
  Cells(6, 1).AutoFilter
  Cells(6, 1).AutoFilter field:=1, Criteria1:="=c"
  Set rng2 = Range("A6", Range("A65536").End(xlUp)).SpecialCells(xlCellTypeVisible).Rows

  Cells(6, 1).AutoFilter
  Range("A6", Range("A65536").End(xlUp)).EntireRow.Hidden = True
  Union(rng, rng2).EntireRow.Hidden = False
  
  Cells(6, 1).AutoFilter field:=1  
  Cells(6, 1).AutoFilter       
End Sub

【34410】Re:セル内で計算
発言  やっちん  - 06/2/2(木) 8:36 -

引用なし
パスワード
   なるほど。
色々な考え方があって面白いです。
また勉強になりました。

【34503】Re:セル内で計算
質問  まろにゃ  - 06/2/4(土) 9:49 -

引用なし
パスワード
   ▼やっちん さん:
最初の件はponponさんから教えたいただいた方法で解決できそうです。

▼PP さん:
ありがとうございます。
試してみました。
うーん、何も変わりませんでした。。。。
やり方が何か間違っているのでしょうか。

A列にその値を入力して、教えたいただいたマクロを実行してみたのですが。

【34504】Re:セル内で計算
発言  PP  - 06/2/4(土) 10:46 -

引用なし
パスワード
   ▼まろにゃ さん:
>▼やっちん さん:
>最初の件はponponさんから教えたいただいた方法で解決できそうです。
>
>▼PP さん:
>ありがとうございます。
>試してみました。
>うーん、何も変わりませんでした。。。。
>やり方が何か間違っているのでしょうか。
>A列にその値を入力して、教えたいただいたマクロを実行してみたのですが。

それでよいのですよ。
何も変わらないことは有りません。元の状態に戻しているのです。
コードの中身を追ってください。

やり方ではないです…オートフィルターで3種類の選択の例です。
F8でコードをたどってください…

最初はabで絞られます。次はcで、その次はabcで絞られると思います。
この絞られたところに集計とか動作を入れるとか…で
三種類の作業ができるわけです。

コードは最終は元に戻しています。
マクロだけ実行すると最初と最終だけが画面に出ており変化が無いように
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
見えるだけです。・・・お分かりいただけたでしょうか。

【34757】Re:セル内で計算
お礼  まろにゃ  - 06/2/11(土) 15:48 -

引用なし
パスワード
   ▼PP さん:
超亀レスすみません。

F8で確認してみました。
とても勉強になりました、ありがとうございます。
(F8での確認って知りませんでした。。。)

なんとかなりそうです。
本当にありがとうございました。

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