![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になっております。今now関数とマクロを使って当日の時間をリアルタイムでセルに表示
させております。これをさらにtext関数でyyymmddhhmmss、2017012905148という感じで表示させており、これをif関数である条件に達したときに別のセルにこの数字がはいるように設定したのですが、時間が常に動いているのでこのセルに表示されている数字がいつまでも数字が動いてしまいます。つきましては、ifでこの別のセルに表示された時点で数字で固定されるようにしたいのですが、どなたか教えていただけないでしょうか?マクロでも関数でもかまいません。
わかりずらい文章であれば補足いたしますのでご質問入れてください。
ちなみに用途としては出退勤管理用みたいな感じで利用しています。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
こんな感じです。
修正の必要な行をコメントにして、次行に修正後の命令を記述しました(修正は3ヶ所です)。
申し訳ありませんが、説明は省略させていただきます。意味はヘルプ等でご確認ください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRng As Range
Dim r As Range
'Set myRng = Intersect(Target, Range("C1:C10"))
Set myRng = Intersect(Target, Range("F1:F10,H1:H10"))
If Not myRng Is Nothing Then
Application.EnableEvents = False
For Each r In myRng
If r.Value = "" Then
'r.Offset(0, 1).Value = ""
r.Offset(0, -1).Value = ""
Else
'r.Offset(0, 1).Value = Range("B1")
r.Offset(0, -1).Value = Range("B1")
End If
Next
Application.EnableEvents = True
End If
End Sub
完全なベストアンサーです。ままちゃりさんということで、ままさんかどうかはわかりませんが、夕飯近くにいろいろ指導いただきありがとうございます。またよろしくお願いします。神ですね。
No.4
- 回答日時:
思い出しました。
その節は失礼しました。返事しようと思ったのですが、締め切られてしまったもので…。添付の画像をご確認ください。
①でシートモジュールを選択し、②でWorkSheetを選択し、③で作りたいイベントプロシジャを選択すると、中身が空っぽのプロシジャ(Private Sub~空っぽ~End Subだけ)が作成されます。
今回の例の場合、「Change」を選択して作成されたプロシジャの中にコードを張り付けることになります。「Private Sub」と「End Sub」の行は重複しないようにしてくださいね。
ちなみに、Worksheet_Changeイベントプロシジャは、該当シート中のセルの値が変更された場合に実行されるものです。「Change」以外にもダブルクリックした時に実行されるものや右クリックした時に実行されるものなどがありますので、お好みに合わせて使い分けて下さい。
![「エクセル関数かマクロで」の回答画像4](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/9/542293914_588d9c797def9/M.png)
すごい丁寧にありがとうございます。締め切りの件も含めてすみません。すべてが素人なものですので。いただいた内容にてちょっとやってみます。
No.3
- 回答日時:
なるほど。
操作した瞬間の時間を取得したいのであれば、やはりVBAでないと不可能ですね。
No.2
- 回答日時:
ある条件というのは何でしょう?
それが11桁の数字=現在の時刻によって決まる、判断できるのであれば式で判断も可能だと思います。
(例えば、何かをした瞬間の時刻。というのであれば、その行動を行ったかどうか関数で判定はできません。 その時刻が就業時刻中ならそのまま、就業時刻外なら直前の終業時刻。というのであれば、就業時刻の指定をすれば11桁の数字から関数で条件を指定できます。)
条件を提示いただければ、式で作れるかVBAじゃないと無理かの判断はできると思います。
No.1
- 回答日時:
関数では数字を固定することはできないと思います。
よって、マクロになります。お好みのイベントプロシジャを使って、固定したいセルに値を代入するイメージです。
例えば、A1セルにNow関数、B1セルにText関数が入っていて、リアルタイムで時を刻んでいるものとします(ここまでは出来ている前提です)。
その上で、C1:C10セルに名前を入力したタイミングで、その右隣のセルにB1セルの値を固定する例を考えてみました。こんな感じです。
該当シートのWorksheet_Changeイベントプロシジャに、次のマクロを記述してください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRng As Range
Dim r As Range
Set myRng = Intersect(Target, Range("C1:C10"))
If Not myRng Is Nothing Then
Application.EnableEvents = False
For Each r In myRng
If r.Value = "" Then
r.Offset(0, 1).Value = ""
Else
r.Offset(0, 1).Value = Range("B1")
End If
Next
Application.EnableEvents = True
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Excel(エクセル) <スプレッドシート>IF関数の複数条件について 5 2022/10/27 14:38
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロのデータ削除
-
エクセルでセルをクリックする...
-
セルをクリックしたら色を変え...
-
【EXCEL-VBA】特定の値の入った...
-
vbaで指定したセルより下の行を...
-
Excel VBA で色付きのセルの値...
-
エクセル:セルの色のコード番...
-
ダブルクリックでセルに色をつ...
-
Excel VBA:フォーム←→セルのア...
-
Excelマクロ セルを行頭に移動
-
エクセルマクロで「セルのサイ...
-
IF関数で違う値もTRUEになる
-
VBAでの SendKeysの変数指定方法
-
Excelで数値の変化をカウントし...
-
ExcelVBA コンボボックスに入力...
-
エクセル関数かマクロで
-
VBA ボタンをセルの右側に合わ...
-
エクセル アクティブセル領域...
-
【VBA】アクティブセルだけ背景...
-
VBA Rangeの足し算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
VBAでの SendKeysの変数指定方法
-
エクセルでセルをクリックする...
-
Excelマクロ セルを行頭に移動
-
Excel VBA:フォーム←→セルのア...
-
マクロのデータ削除
-
【VBA】アクティブセルだけ背景...
-
IF関数で違う値もTRUEになる
-
ファイルサーバー上のexcelファ...
-
エクセルマクロで「セルのサイ...
-
ダブルクリックでセルに色をつ...
-
(エクセルVBA)セルを左クリッ...
-
Excel VBA で色付きのセルの値...
-
VBA Rangeの足し算
-
セルをクリックしたら色を変え...
-
【EXCEL-VBA】特定の値の入った...
-
excel マクロでの特殊文字入力方法
-
【マクロ】1つのセルから結合...
-
Excelで数値の変化をカウントし...
-
ExcelVBA コンボボックスに入力...
おすすめ情報
皆様ありがとうございます。ある条件とかきましたが、そんなに難しくなくて例えば
他のセルに1と入力したときにというような条件とお考え下さい。イメージかきましたが、
例えば出勤したときに1とA1のセルに入力したときにB1にtextの返しが入ってそれが止まれば
その日の出退勤がわかるかなという感じです。
また、ママチャリ様すみません、以前にもご返事いただいてましたありがとうございます。
私マクロあまり詳しくないので恐縮ですが、workshhet云々というところはどこになりますでしょうか?moduleのとこだとgeneralというのしかでてないのですが、こちらもあわせてお返事いただけると助かります。
よろしくお願いします。
ままちゃり様ありがとうございます。添付内容にてできました。助かります。
それであと少し質問お願いします。
1.今c1.c10に入力となってますが、これをたとえばc1.c10とh1.h10という風に2ついれるところを作りたいときはもらったvbaのどこをいじればよろしいでしょうか?
2.今c1に入力すると右のセルに数字が表示されます。これを左に表示させるにはどうしたらよいでしょうか?例えばf1.f10に入力してe1.e10に返すというパターンです。
何度もすみません。ご検討お願いします。