[[20020806134827]] 『マクロの実行について』(がわ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロの実行について』(がわ)

マクロですが、例えばA1セルとB1セルが同じ値なら、C1のセルにマクロを実行する

というようなことが、できますでしょうか。マクロ初心者です。よろしくお願いいたします。

追加:もしくは、A1のセルになにかデータが入った場合に、C1にマクロが実行される方法とどちらかでお願いします。


 マクロはいいですが、C1に対して何をしたいのでしょうか?

 たとえば簡単にIF文をいれるだけで何かアクションを起こすことはできます。

 セルC1に=IF(A1=B1,"等しいです","")

 どうしてもマクロにしたいのなら話は別ですが。

 (kazu)


説明不足ですみません。A1B1が同じならば、C1に同じになった日の日付を入れたいのです。 TODAY関数では、ブックを開くと同時に日付が更新されるため、使えません。

「CTRL+;」のショートカットで日付を入れると、以後ブックを開いても更新されないということだったので、これでマクロを使えないかなっと思ってしまったのです。

マクロじゃなくても、例えば、いったんTODAYで入力した日をそのまま固定するような関数ってあるのでしょうか。

いろいろ試してみたのですがぜんぜんできませんでした。すみません。


 こんばんは、

 A1B1はどういったときに同じ?になるのでしょうか?

 条件やA1B1に入っている関数はあるのか他のセルはどうなっているのか

 等教えていただければ解答がしやすいかもしれません。

 (尋)


いろいろすみません。A1に出荷しなければならない数が入っていて、B2に実際に出荷された数を入力します。A1とB1が同じ数になると、出荷はすべて完了です。出荷完了(A1=B1)した日付をC1に自動入力され、そのまま固定しておきたいのです。A1B1には関数は入っていません。手入力している数が表示されている状態です。

こんなことってできますか?よろしくお願いいたします。(がわ)


 Functionでできないか悩んだのですが、どうしても、自分自身を参照するループに

 なってしまい、やはりマクロになりました。謝々。

ramrunさんの[[20020530145644]]をベースに作成しました。

 (kazu)

 標準モジュールに下のコードを貼り付けます

 Sub UsSheetUpdate(inp1, inp2, outp, tar)

    Application.EnableEvents = False

    If Range(outp).Value = "" Then    ' C1に何も入っていないとき

        If tar.Address = inp2 Then    ' 変更された場所がB1の時

            If Range(inp1).Value = Range(inp2).Value Then   ' A1とB1が等しい

                Range(outp).Value = Now()

                Range(outp).Select

                Selection.Copy

                Selection.PasteSpecial Paste:=xlPasteValues, _

                    Operation:=xlNone, SkipBlanks:=False, Transpose:=False

            End If

        End If

    End If

    Application.EnableEvents = True

 End Sub

 プロジェクトエクスプローラの

 Sheet1(Sheet1)のところをダブルクリックして、下のコードを貼り付けます

 Private Sub Worksheet_Change(ByVal Target As Range)

     UsSheetUpdate "A1", "$B$1", "C1", Target

 End Sub


すみません。出張していて返事が遅れました。

できました!丁寧でわかりやすいご指導ありがとうございます。

エクセルって奥が深いですね。がんばって勉強します。(がわ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.