三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

Excel VBA WorksheetのChangeイベントに処理を書いてみたテスト

q.hatena.ne.jp
に回答してみた。

シートのコード
f:id:ken3memo:20181111213131j:plain
f:id:ken3memo:20181111213156j:plain
に、

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 And Target.Row < 100 Then
        Cells(Target.Row, "E") = Now
    End If
End Sub

を書くと、

WorksheetのChangeのイベントで、
タイミングが取れそうなので、
あとは、
Private Sub Worksheet_Change(ByVal Target As Range)
で受け取った
Targetの個数を.countで調べ、
.Rowの行数を使ってみました。
処理の参考となれば、幸いです。

https://youtu.be/yK2H8FbHsmo?t=182
youtu.be



2018-11-15 追記
完成した・・と思ってたら、質問者から不具合の連絡があった。 ぉぃぉぃ
コードを実行すると、

日付が記載されると2秒くらいフリーズしたりエクセルが点滅、読み込み直しをしているような何とも苦しそうな挙動をします。

ごめんなさい、私の配慮が足りなくて、Excelが苦しくなってました。
なんて、変な挨拶は置いといて、

Private Sub Worksheet_Change(ByVal Target As Range)
    '.Column <> 5(E列以外)で.Row 行が<100
    If Target.Column <> 5 And Target.Count = 1 And Target.Row < 100 Then
        Cells(Target.Row, "E") = Now
    End If
End Sub

テスト・蛇足の解説してみました
デバッグ Excel VBA Worksheet_Changeイベントでシート内容を書き換えると再度Changeイベントが発生する - YouTube
www.youtube.com
お時間のある時に見て、笑ってください。
うまく修正できることを願いつつ、失礼します。
※恥の上塗り、再度の不具合が無いことを願いつつ・・・

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)