
No.5ベストアンサー
- 回答日時:
こんばんわ a04sa026 さん
締め切っていないということはまだ何か解決していないのでしょうか?
解決したなら閉めておいてくださいね。
hallo-2007さんが20分も後に全く同じ回答とするとは思いませんでしたがまぁそれはおいて置いて。
実は前回の処理には致命的バグがあります。きっともう少し使えば分かることですが、複数行の処理に対応していません。二行以上のドラッグ(オートフィル)や二行以上選択した状態での"完了"などのペーストもしくは削除のたびにエラーします(使い物になりません)。
暇だったので対応版を作っておきました。どうぞお使いください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
If Cells(Target.Row, 4).Value = "完了" Then Status = Date Else Status = ""
If TypeName(Target.Value) <> "Variant()" Then Cells(Target.Row, 5).Value = Status Else _
For i = 0 To UBound(Target.Value) - 1: Cells(Target.Row + i, 5).Value = Status: Next
End If
End Sub
最初の記述とはもう別物に成ってしまいましたがよりベストな処理になっています。
追加処理・処理違い・補足等あればいってください。
お礼が遅くなってしまい申し訳ありません。
改良版まで教えていただいてありがとうございます。
まだまだ初心者で、argumentさんのソースを読むことが難しいですが、一歩ずつ勉強していきたいと思っておりますので今後ともよろしくお願いいたします。
本当にありがとうございました。
No.4
- 回答日時:
完了から・・・ではありませんが
完了なら日付、以外の場合は空白 です
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
If Target.Value = "完了" Then
Cells(Target.Row, 5).Value = Date
Else
Cells(Target.Row, 5).Value = ""
End If
End If
End Sub
お礼が遅くなってしまい申し訳ありません。
hallo-2007のおかげでタスク管理が速くなり、仕事の効率を上げることができました。
お二方ともに20ptとしたかったのですが、できないようでしたのでお許しください。
本当にありがとうございました。
今後ともよろしくお願いいたします。
No.3
- 回答日時:
こんばんわ a04sa026 さん
補足へ回答となります。
データを以下に書き換えてください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
If Target.Value = "完了" Then
Cells(Target.Row, 5).Value = Date
Else
Cells(Target.Row, 5).Value = ""
End If
End If
End Sub
どうでしょうか?貴方のお望みの結果になったはずです。
完了後日付が入り別な言葉にすれば削除されます。
今後のメンテナンスを考えるあなた自身がこの処理をもう少し理解しようとする必要があります。
この最初の宣言はワークブックの変更を監視します
Private Sub Worksheet_Change(ByVal Target As Range)
もしも変更位置(セル)がColumnが左から4(つまりD列)ならば処理する
If Target.Column = 4 Then
もしもその値が「完了」ならばColumn 5(つまりE列)
にdate(つまり今の日付)をいれる
If Target.Value = "完了" Then
Cells(Target.Row, 5).Value = Date
もしもそうでないならば現在の行のColumn 5(つまりE列)
の値を削除する。(Target.Rowには変更されたセルの行が格納されている)
Else
Cells(Target.Row, 5).Value = ""
End If
End If
End Sub
という処理です。これはかなり初歩的な構文です。
きっと検索したほうが早かったかも知れません。
No.2
- 回答日時:
D列に 完了 と言う文字が入力されたら E列に 日付を入れる。
VBAの力を借りるしか方法はないと思います。
シートの名前のタブを右クリックして コードの表示をクリック
VBエディターが起動しますので
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
If Target.Value = "完了" Then
Cells(Target.Row, 5).Value = Date
End If
End If
End Sub
をコピィして閉じる。試してみてください。
この回答への補足
ありがとうございます。
無事実行できました!!
VBAすごいですね。
これから、勉強していきたいと思います。
あと一点お願いがあるのですが、完了から、違う言葉に変更されると日付が消去されることは可能でしょうか?
お手数をおかけし申し訳ありませんがよろしくお願いいたします。
No.1
- 回答日時:
関数では、常時またはいずれ再計算のようなことをするので、そのブックを開いた日がいつも出てくるという理屈で、質問者の二ーズにあわない。
もうひとつTODAY()関数が常時当日日付をシステムから採るということがある。
ーー
だから質問者にはなじみが無いかもしれないが、エクセルVBAのD2セルの変更時を捉えて、(E列のセルに日付をセットする)処理を実行する
イベントという仕組みを勉強してください。その中のイワークシートのChangeのベントです。
WEBで「Change イベント VBA」照会すれば、記事が沢山出る。
http://oshiete.nikkeibp.co.jp/qa2932094.html
ご指摘ありがとうございます。
imogasiのご指摘で勉強不足を痛感しました。
これから勉強をしていきたいと思います。
ありがとうございました。
今後ともよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
確定申告しなかった・無申告の人をどうやって見つけるのか元国税調査官に聞いてみた
無申告の方などを対象に税務調査を行う国税局の元税務調査官さんに、どう無申告を探すのか聞いてきました。
-
☆Excelエクセルで入力した日の日付を表示したいです☆
Excel(エクセル)
-
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
4
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
5
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
6
◆ EXCEL自動入力日付を自動で変わらないようにする方法
Excel(エクセル)
-
7
データが入力されている隣のセルに当日日付と時刻を入力するExcel VBAプログラム
Visual Basic(VBA)
-
8
(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?
Excel(エクセル)
-
9
ある列のセルに特定の文字が入っていたら他のセルに決まった文字を入れる
Word(ワード)
-
10
ExcelでTODAY関数を更新させない方法
Excel(エクセル)
-
11
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
12
エクセルで条件に一致したセルの隣のセルを取得したい
その他(Microsoft Office)
-
13
対象セル内(複数)が埋まったら文字を表示させたい
Excel(エクセル)
-
14
Excelで、「特定のセル」に入力したら→「別のセル」に「○」を自動表示する方法
Excel(エクセル)
-
15
セルに入力されたら日付が出るようにしたい
Visual Basic(VBA)
-
16
エクセル:特定のセルに入力するとセルが塗りつぶされるには?
Windows Me・NT・2000
-
17
エクセル 特定の文字を入れると他のセルの色が変わる
Excel(エクセル)
-
18
<エクセル>もし指定するセルに何らかの文字が入っていたら
Excel(エクセル)
-
19
エクセルで、あるセルに入力されたらこのセルを参照する…
Excel(エクセル)
-
20
Excelの条件付き書式設定の太い罫線
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
大過去は進行形の形をしている...
-
5
英語で短く表現するには・・(...
-
6
【完了と結果の違い】現在完了
-
7
had beenとwasの違いについて
-
8
By the time (過去完了形&過去...
-
9
has had to..
-
10
「何か不都合ありましたでしょ...
-
11
started か have started か?
-
12
IFS関数の場合で、セルが空白の...
-
13
現在完了でfinishのとき
-
14
「have been ~ing」と「have be...
-
15
EXCEL:特定の文字が入力された...
-
16
report~ingの用法を教えてくだ...
-
17
英訳問題「私は昨年,紛失した...
-
18
過去完了と副詞
-
19
過去完了形の「完了、結果」と...
-
20
日本語説明「~した方がいい」...
おすすめ情報
公式facebook
公式twitter