Excel VBA質問箱 IV

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

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


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

【43816】イコールとイコールでない時の使い方 コーチ 06/10/26(木) 11:35 質問[未読]
【43819】Re:イコールとイコールでない時の使い方 Statis 06/10/26(木) 11:48 質問[未読]
【43821】Re:イコールとイコールでない時の使い方 コーチ 06/10/26(木) 11:53 発言[未読]
【43825】Re:イコールとイコールでない時の使い方 Statis 06/10/26(木) 13:03 回答[未読]
【43827】Re:イコールとイコールでない時の使い方 コーチ 06/10/26(木) 13:23 お礼[未読]
【43838】Re:イコールとイコールでない時の使い方 横から失礼 06/10/26(木) 17:10 質問[未読]
【43854】Re:イコールとイコールでない時の使い方 ゆと 06/10/26(木) 22:51 発言[未読]
【43858】Re:イコールとイコールでない時の使い方 横から失礼 06/10/27(金) 0:06 お礼[未読]

【43816】イコールとイコールでない時の使い方
質問  コーチ  - 06/10/26(木) 11:35 -

引用なし
パスワード
   こんにちわ。
今日からVBAを学ぶ初心者です。

ワークシートで、セルA、B、Cがあるときに、
セルA=BならCに●を入力し、
セルAとBが等しくなければCに×を入力し、
その結果を●×ごとに分けて別シートに貼り付けています。
これをVBAなら簡単に記述できるとききました。
今は手作業でフィルタをかけてコピーして貼り付けて・・・
ということをしていますが、マクロで一括で操作したいと思います。

よろしくお願いします。

【43819】Re:イコールとイコールでない時の使い方
質問  Statis  - 06/10/26(木) 11:48 -

引用なし
パスワード
   ▼コーチ さん:
こんにちは
>こんにちわ。
>今日からVBAを学ぶ初心者です。
>
>ワークシートで、セルA、B、Cがあるときに、
>セルA=BならCに●を入力し、
>セルAとBが等しくなければCに×を入力し、
>その結果を●×ごとに分けて別シートに貼り付けています。
>これをVBAなら簡単に記述できるとききました。
>今は手作業でフィルタをかけてコピーして貼り付けて・・・
>ということをしていますが、マクロで一括で操作したいと思います。
>
>よろしくお願いします。
どのデータを何処のシートの何処に貼付けるのでしょうか?

【43821】Re:イコールとイコールでない時の使い方
発言  コーチ  - 06/10/26(木) 11:53 -

引用なし
パスワード
   >どのデータを何処のシートの何処に貼付けるのでしょうか?

失礼しました。
セルCで●ならば、セルAとBを"OK"シートに、
セルCで×ならば、セルAとBとCを "NG"シートに
それぞれコピーして貼り付けています。

【43825】Re:イコールとイコールでない時の使い方
回答  Statis  - 06/10/26(木) 13:03 -

引用なし
パスワード
   こんにちは

こんな感じです。
データシートをSheet1としています。


Sub Test()
Dim C As Range
With Worksheets("Sheet1")
   For Each C In .Range("A2", .Range("A65536").End(xlUp)).Offset(, 2)
     If C.Value = "●" Then
      Worksheets("OK").Range("A65536").End(xlUp) _
       .Offset(1).Resize(, 2).Value = C.Offset(, -2).Resize(, 2).Value
     ElseIf C.Value = "×" Then
      Worksheets("NG").Range("A65536").End(xlUp) _
       .Offset(1).Resize(, 2).Value = C.Offset(, -2).Resize(, 2).Value
     End If
   Next C
End With
End Sub

【43827】Re:イコールとイコールでない時の使い方
お礼  コーチ  - 06/10/26(木) 13:23 -

引用なし
パスワード
   ▼Statis さん:
なるほど!
自分で書くことはできなかったんですが、
書いてるのをみると、とても分かりやすく簡単なんですね。
これからもっとVBAについて勉強していきたいと思います。
ありがとうございました。

【43838】Re:イコールとイコールでない時の使い方
質問  横から失礼  - 06/10/26(木) 17:10 -

引用なし
パスワード
   すいません。横から失礼します。
例題を探していて、自分の欲しい情報でしたので
質問させていただきます。

>Dim C As Range
で宣言されていますが、これはワークシートで
=IF(A2=B2,"●","×")の関数が入力されていたときですよね?
この関数をワークシートから削除して、
記述をVBAのソースに持っていった場合
どういう風に記述したらよいのでしょうか?
VBA初心者です。よろしくお願いします。

【43854】Re:イコールとイコールでない時の使い方
発言  ゆと  - 06/10/26(木) 22:51 -

引用なし
パスワード
   こんばんは。
横からのコメントで失礼します。

>>Dim C As Range
>で宣言されていますが、これはワークシートで
>=IF(A2=B2,"●","×")の関数が入力されていたときですよね?

A列で2行目〜入力されている一番下の行までの範囲を対象にC列の値
を判定して各シートに転記するという構成になってますね。
Statisさんの示されたコードは、関数ではなくても"●"、"×"値が
C列に表示されていれば動作します。


>If C.Value = "●" Then
>ElseIf C.Value = "×" Then

なので上記の条件式部分を変更すればワークシート関数に関係なく
処理可能な形に作り変えることができます。

【43858】Re:イコールとイコールでない時の使い方
お礼  横から失礼  - 06/10/27(金) 0:06 -

引用なし
パスワード
   なるほど!
ワークシート関数の使い方、勉強になりました。
ありがとうございました。

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