(シートモジュールです)
Private Sub Worksheet_Change(ByVal Target As Range)
'6行未満は対象外
If Target.Row < 6 Then Exit Sub
'6,8,10,12,14行・・・以外は対象外
If Target.Column < 6 Then Exit Sub
If (Target.Column - 6) Mod 2 <> 0 Then Exit Sub
Target.Offset(, 1).Value = Date
End Sub
以上のコードを入れてあります。入力箇所の仕様としては、
左側:名前
右側:左側に名前を入力すると、入力された日付が表示される(←ここに作用されるコードになっています)
名前を入力すると日付が表示されるのですが、、、
例 №○問題点
(改善したいこと)
№①名前を消しても日付は表示されたまま
(名前を消すと日付も消えるようにしたい)
№②名前の入力訂正として範囲してdeleteすると、deleteした範囲分の右側に日付が表示される
(①と同様に範囲分名前をdeleteしても日付が入力されないようにしたい)
№③列まで作用させたいのに、それ以降の列にも同じ作用になる
(日付が表示されるのがAM列までにしたい)
※ R6、T6、V6、X6、Z6、AB6、AD6、AF6、AH6、AJ6、AL6列が名前を入力する列
※ S6、U6、W6、Y6、AA6、AC6、AE6、AG6、AI6、AK6、AM6列が入力された日付が表示される列
お手数ですが、分かる方ご教示をお願いできないでしょうか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
No①②③の対応版です。
(作り直しになります)No②の範囲選択ですが、範囲が全て有効なセル内に入っている場合のみ、
その範囲を処理するようにしています。そうでない場合は、何も処理しません。
例:
F5~F10の場合、処理なし(F5が無効セル)
F6~G10の場合、処理なし(G列が無効セル)
F6~F10の場合、処理する
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
For Each r In Target
'6行未満は対象外
If r.Row < 6 Then Exit Sub
'AL列を超えた場合は、対象外
If r.Column > 38 Then Exit Sub
'6,8,10,12,14行・・・以外は対象外
If r.Column < 6 Then Exit Sub
If (r.Column - 6) Mod 2 <> 0 Then Exit Sub
Next
Application.EnableEvents = False
For Each r In Target
If r.Value = "" Then
r.Offset(, 1).Value = ""
Else
r.Offset(, 1).Value = Date
End If
Next
Application.EnableEvents = True
End Sub
作り直しいただき誠にありがとうございます。
無事イメージ通りの動きができるようになりました。
お忙しいところお手数おかけしました。
No.1
- 回答日時:
こんにちは
いろいろありますけれど・・
>№①、№②
変更されたセルの値が、空白なら右隣も空白にすれば良いです。
具体的には
If Target.Value = "" Then Target.Offset(, 1).Value = "" Else Target.Offset(, 1).Value = Date
みたいな感じです。
一方で、ご提示のコードは変更セルが1ヶ所のみであると決め打ちのコードになっていますので、コピペやデリートなどで複数セルが変更された場合はを想定されていません。
ですので、複数セルにも対応できるようにするなら、根本的に考え方を変えて作り直すしかありません。
>№③
どの列の範囲にしたいのかがよくわかりませんけれど・・
ご提示のコードで、「偶数列であること」をチェックしているのと同じように、指定の列範囲内であることをチェックすれば良いでしょう。
具体的には
Target.Column >= 最小列番号 And Target.Column <= 最大列番号
のような感じです。
上記同様に、複数セルを対象とする場合は、そのままTargetで判定するのではうまくいきませんけれど・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ワークシートチェンジ 1 2022/02/01 11:19
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【関数orVBA】カーソルのある行を黄色にし、A列の値を別シートに表示できますか? 4 2021/12/28 00:03
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
システム日付とは?
-
VBA 日付、未来の日付はエラー...
-
3人のじゃんけんのプログラム
-
Eclipseの対応する括弧の強調表...
-
指定した日付が、その月の第何...
-
VisualBasic6.0のFormat関数で...
-
1本あたり○円と表示する時どの...
-
DataGridViewでyyyy/MM/dd
-
ZedGraphのグラフ作成時のX軸日付
-
VBAのオーバーフローについて質...
-
VBAのvalueとvalue2の違いに...
-
デザインが自由に変更でき「古...
-
C++で日付判定を行いたい!!
-
【Excel VBA】条件に合った行の...
-
VB 日付範囲チェック
-
【VBA】土日をスキップして日付...
-
JavaScriptで日付別のテキスト...
-
VBからCSVにデータを落とすとき...
-
エクセルVBAで機械の稼働時間を...
-
時間の計算の方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseの対応する括弧の強調表...
-
VisualBasic6.0のFormat関数で...
-
DataGridViewでyyyy/MM/dd
-
ユーザーフォームのラベルに日...
-
エクセルのVBAで日付を検索し転...
-
3人のじゃんけんのプログラム
-
今日より前の書き方 マクロ
-
1本あたり○円と表示する時どの...
-
テキストボックスにカレンダー...
-
システム日付とは?
-
「eclipseで作るカレンダー(ス...
-
VB6.0 のformat関数について
-
コンボボックスに日付を表示する
-
VBAで日付入力しているのですが
-
【Excel VBA】条件に合った行の...
-
【VBA】土日をスキップして日付...
-
VBA 日付、未来の日付はエラー...
-
excelのVBAについて、以下のコ...
-
テキストボックスに今日の日付...
-
DataGridViewの和暦表示について
おすすめ情報