アプリ版:「スタンプのみでお礼する」機能のリリースについて

ご存知の方いらっしゃいましたらお願いします。
Excelは2003を使用しています。

Excelで「とある条件にあった場合、この情報を貼り付ける」というマクロは可能でしょうか。
当方マクロ知識は「マクロの記録」程度です。


A列に文字が入っていた場合、D列に別シートにある関数のセル(★)を貼り付ける
(この場合は、「商品い」のD列に★がコピーされる)

A列    B列    C列     D列
      商品あ   50円
倉庫    商品い   10円    ★
      商品う   20円

この逆(A列に情報がない場合)や、条件を複数にしたり等も出来ればうれしいです。

A 回答 (3件)

>「YシートのA1に文字がない場合、WシートのA2セルをYシートのD1に貼り付ける」


>「YシートのA1に文字がなく、C列にも文字がある場合、WシートのA2セルをYシートのD1に貼り付ける」
この二つの違いが不明ですが。

取り敢えずYシートのA列に
・入力があればWシートのA1の数式を同じ行のD列に入れる。
・値がクリアされたらWシートのA2の数式を同じ行のD列に入れる。
と言う条件としました。
(値の入力・クリアは複数セルには未対応。1つずつ行なうとしてます)

Yシートのシートタブを右クリック>コードの表示で表示された
シートモジュールにコピペ。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim ws As Worksheet
 Set ws = Worksheets("Wシート") 'シート名変更?

 With Target
      If .Column <> 1 Then Exit Sub
      If .Cells.Count > 1 Then Exit Sub

      If LenB(.Value) <> 0 Then
         .Offset(, 3).Formula = ws.Range("A1").Formula
      Else
         .Offset(, 3).Formula = ws.Range("A2").Formula
      End If
 End With
End Sub
シート名”Wシート”は変更願います。
    • good
    • 0
この回答へのお礼

出来ました!
ありがとうございました。

シートモジュールというのを初めて知りました。
色々変えて試してみたいと思います。

お礼日時:2008/08/11 10:02

ANo.1です。



WシートのA1やA2は固定ですか?
数式を代入するのか、値を代入するのか、どちらでしょう。

この回答への補足

固定で数式を入れます。
元々WシートのA1、A2には関数が入っているので、それをそのままコピー出来たらと思います。

補足日時:2008/08/08 16:34
    • good
    • 0

>A列に文字が入っていた場合、D列に別シートにある関数のセル(★)を貼り付ける


A列に文字が入った場合、別シートのどこのセルから貼り付けるのかが
不明です。

>この逆(A列に情報がない場合)や、条件を複数にしたり等も出来ればうれしいです。
詳細が不明です。
A列に文字がない時はどうしたいのか。
複数条件とは何を差すのか、そして何をしたいのか。

この回答への補足

わかりにくい説明ですみません。

例えば・・・
作業ワークシート:Yシート
関数セルがあるワークシート:Wシート

「YシートのA1に文字があった場合は、WシートのA1セル(関数が入力されている)を、YシートのD1に貼り付け、
YシートのA1に文字がない(空白)の場合は、貼り付けない」

というのをやりたいです。
可能であれば、

「YシートのA1に文字がない場合、WシートのA2セルをYシートのD1に貼り付ける」
「YシートのA1に文字がなく、C列にも文字がある場合、WシートのA2セルをYシートのD1に貼り付ける」

というちょっと違うパターンなども出来れば嬉しいです。

補足日時:2008/08/08 15:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!