[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロの実行について』(がわ)
マクロですが、例えば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.