Excel VBA質問箱 IV

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

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


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

【65443】ちょっとややこしいのですが・・・・ isausa 10/5/21(金) 13:28 質問[未読]
【65447】Re:ちょっとややこしいのですが・・・・ Jaka 10/5/21(金) 16:44 発言[未読]
【65448】Re:ちょっとややこしいのですが・・・・ isausa 10/5/21(金) 16:50 質問[未読]
【65450】Re:ちょっとややこしいのですが・・・・ ponpon 10/5/22(土) 19:57 発言[未読]
【65460】Re:ちょっとややこしいのですが・・・・ isausa 10/5/24(月) 11:01 質問[未読]
【65462】Re:ちょっとややこしいのですが・・・・ ponpon 10/5/24(月) 12:23 発言[未読]
【65467】Re:ちょっとややこしいのですが・・・・ isausa 10/5/24(月) 16:49 お礼[未読]

【65443】ちょっとややこしいのですが・・・・
質問  isausa  - 10/5/21(金) 13:28 -

引用なし
パスワード
   お知恵を拝借します。

A2からA15まで(15は変動します。)のセルに、次の条件にあうような式か又はVBAで入力したいのですが・・・
D列に数字が入っており、B列を基準とする集計行があります。
 A  B    C   D  
1科目 オーダー 品名  金額
2    12       250
3    12       300
4   12 集計      550
5    13        23
6    13       1000
7   13 集計     1023
8    14       -55
9    14       -50
10   14 集計    -105
という具合にです。そこでA4行目に"売掛金"と、10行目の場合はマイナスなので""を入れたいのですが、可能でしょうか。
整理するとB列に集計の文字を含んでいなければ""を、B列に集計という文字があってD列が0より大きいときに"売掛金"、集計という文字を含み、Dの値が0より小さいときは""を入れるようにしたいのです。上の表で言うとA4.7に売掛金、A10は何もなしにしたいのです。方法はありますか

【65447】Re:ちょっとややこしいのですが・・・・
発言  Jaka  - 10/5/21(金) 16:44 -

引用なし
パスワード
   どの辺がわからないのでしょうか?
数式でも出来ますよ。

=IF(COUNTIF(B2,"*集計"),IF(D2<0,"","売掛金"),"")


B1に「集計」の文字が含まれていたらなら、

If Cells(1,2).value Like "*集計*" = True Then

End If

とか、

IF instr(1,Cells(1,1).value,"集計") > 0 Then

end if

で、判定できます。

【65448】Re:ちょっとややこしいのですが・・・・
質問  isausa  - 10/5/21(金) 16:50 -

引用なし
パスワード
   ▼Jaka さん:
>どの辺がわからないのでしょうか?
>数式でも出来ますよ。
>
>=IF(COUNTIF(B2,"*集計"),IF(D2<0,"","売掛金"),"")
>数式ではばっちりでした。
でもVBAでは
>
>B1に「集計」の文字が含まれていたらなら、
>
>If Cells(1,2).value Like "*集計*" = True Then
>ActiveCell.Offset(, -1).Value = "売掛金"
>End If
>としたところ、そのときのセルの左となりに売掛金が入ってしまいます。
A1に入れたいのに・・
どうしたらいいですか。
それと、D列の金額がマイナスかプラスかの判定ができません。どうかよろしくお願いいたします。
こちら、初心者を通り越して、DO初心者、及び言いたくないけど、62歳
よろしくお願いします

【65450】Re:ちょっとややこしいのですが・・・・
発言  ponpon  - 10/5/22(土) 19:57 -

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

>整理するとB列に集計の文字を含んでいなければ""を、B列に集計という文字があってD列が0より大きいときに"売掛金"、集計という文字を含み、Dの値が0より小さいときは""を入れるようにしたいのです。上の表で言うとA4.7に売掛金、A10は何もなしにしたいのです。方法はありますか

sheet1 だとして、
こんな感じ?

Dの値が0の時も""にしています。


Option Explicit

Sub test()
Dim r As Range

With Sheets("Sheet1")
  For Each r In .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
    If InStr(r.Value, "集計") > 0 Then
      If r.Offset(, 2).Value > 0 Then
       r.Offset(, -1).Value = "売掛金"
      Else
       r.Offset(, -1).Value = ""
      End If
     Else
      r.Offset(, -1).Value = ""
     End If
   Next
End With
End Sub

【65460】Re:ちょっとややこしいのですが・・・・
質問  isausa  - 10/5/24(月) 11:01 -

引用なし
パスワード
   ▼ponpon さん:
>
>>整理するとB列に集計の文字を含んでいなければ""を、B列に集計という文字があってD列が0より大きいときに"売掛金"、集計という文字を含み、Dの値が0より小さいときは""を入れるようにしたいのです。上の表で言うとA4.7に売掛金、A10は何もなしにしたいのです。方法はありますか
>
>sheet1 だとして、
>こんな感じ?
>
>Dの値が0の時も""にしています。
>
>
>Option Explicit
>
>Sub test()
> Dim r As Range
>
> With Sheets("Sheet1")
>  For Each r In .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
>    If InStr(r.Value, "集計") > 0 Then
>      If r.Offset(, 2).Value > 0 Then
>       r.Offset(, -1).Value = "売掛金"
>      Else
>       r.Offset(, -1).Value = ""
>      End If
>     Else
>      r.Offset(, -1).Value = ""
>     End If
>   Next
> End With
>End Sub
実は作成中のシートはD列に集計を含む列、M列の数字を判定して、+の時は"売掛金"、-の時は"売上金"を入れる事になっていますので、下記のように番地を変更したらうまくいきました。ありがとうございます。
Dim r As Range
With Sheets("Sheet1")
For Each r In .Range(.Cells(10, 4), .Cells(Rows.Count, 4).End(xlUp))
If InStr(r.Value, "集計") > 0 Then
If r.Offset(, 9).Value > 0 Then
 r.Offset(, -3).Value = "売掛金"
 Else
 r.Offset(, -3).Value = "売上金"
End If
 Else
 r.Offset(, -3).Value = ""
End If
Next
End With

End Sub
そこでもう少し甘えて質問します。めくらめっぽうに数字を変えてうまくいったのですが3行目の
Cells(Rows.Count, 4).End(xlUp))の4は何を表すのでしょうか。教えてください。
今度はN列に反対勘定を入れてみたいと思っていますので、どことどこをアレンジすればいいのか、それを参考に今から考えたいと思います。

【65462】Re:ちょっとややこしいのですが・・・・
発言  ponpon  - 10/5/24(月) 12:23 -

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

>そこでもう少し甘えて質問します。めくらめっぽうに数字を変えてうまくいったのですが3行目の
>Cells(Rows.Count, 4).End(xlUp))の4は何を表すのでしょうか。教えてください。

cells(行、列)ですから、4は、4列目つまり、D列になります。

>今度はN列に反対勘定を入れてみたいと思っていますので



【65467】Re:ちょっとややこしいのですが・・・・
お礼  isausa  - 10/5/24(月) 16:49 -

引用なし
パスワード
   ▼ponpon さん:
 JAKAさん
ありがとうございました。うまくいきました。
課の人にちょっと鼻が高い?

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