ExcelのVBAと呼ばれるものを使って
入力した横のセルに入力された時の時刻の表示方法について教えていただきたいです。
Excel初心者でこのVBAを触る事が初めてなのですが
自分と似た質問(Yahoo!知恵袋)のアンサーを頼りにVBAを入力したところ、
エラーが出てしまい、うまく進める事が出来ませんでした。
用語も詳しくないまま、思考錯誤したのですが、自分ではうまく出来なかったため、
こちらの場所をお借りして、詳しい方にぜひご教授いただければ幸いです。
やりたい事としては、
G列に入力した時、横のセルH列に入力された時点の時刻を表示
また、同じsheetで、O列に入力した時、P列に同じく時刻を表示したいです。
参照した方法では、日付表示となっておりますが、セルの[ホーム][数値]のバーから
時刻表示に変更できることは確認できています。
■参照した質問とアンサー
https://detail.chiebukuro.yahoo.co.jp/qa/questio …
下記引用↓
=================================
B列に入力し、A列に日付を書き込む場合
B1→A1
B2→A2
B3→A3
…
--------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Application.EnableEvents = False
Target.Offset(, -1).Value = Now
Application.EnableEvents = True
End Sub
--------------------
こちらの方法をコピペして、AとBをそれぞれGとHに変えてみたのですが、
「コンパイルエラー;
修正候補:区切り記号 または」
と警告が表示され、1行目の「Target」部分が青く表示されてしまいました。
解決策ともしよろしければ、
VBAに入力するコードを教えていただけましたら、大変助かります。
質問に分かりにくい部分がありましたら申し訳ございません。
ご指摘いただければ助かります。
どうか、よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんにちは、
先ず初めにPrivate Sub Worksheet_Change(ByVal Target As Range) は
シートイベントでセルの値が変更された時に実行されます。
コードを書くモジュールは、実行したいシートモジュール(Excel Object)です。
VBエディタでシートオブジェクトをダブルクリックしてカーソル位置から下
参考 https://excel-master.net/macro-vba/excel-vba-mod …
標準モジュールに書き、ボタンなどから実行するとエラーが返り、機能しません。
ご質問の場合のコードは下記のようになりますが、
少し調べて頂き、調べても分からない所があれば、追記してください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
With Application
If Not .Intersect(Target, Range("G:G")) Is Nothing Or Not .Intersect(Target, Range("O:O")) Is Nothing Then
.EnableEvents = False
' Target.Offset(, 1).Value = Format(Time, "hh:mm:ss")
Target.Offset(, 1).Value = Format(Time, "hh時mm分ss秒")
.EnableEvents = True
End If
End With
End Sub
Qchan1962さん
ご解答ありがとうございます。
初心者の私でも分かるお優しい説明で、自身の無知による勘違いに気が付けました!さらに解決するコードまで詳しく教えていただき、感謝の気持ちでいっぱいです。
この度は本当にありがとうございました!
No.4
- 回答日時:
一番ミスりやすいのって該当列のセルを単独で操作する場合は良いのですが、複数を纏めて処理(例えば範囲選択をして削除やクリアなど)に対する対策なのですが、どうして知恵袋でそれが漏れたのでしょうね。
結構ベテランの方のようですが。
めぐみんさん
ご解答ありがとうございます。
なるほど、そういう部分もあるのですね
知識もない自分には難しかったのですが、勉強になります!
この度はありがとうございました。
No.3
- 回答日時:
>こちらの方法をコピペして、AとBをそれぞれGとHに変えてみた
元ネタではなく、あなたが実際に試用しているコードを
コピペしてください。
余計な所をいじったのではないですか?
例えば
正:ByVal
誤:ByVaI
みたいに。
よろずやkinchanさん
ご解答ありがとうございます。
全くもってその通りでございました…!
決まりのコードであることも知らず、いじってしまっていました…
これでは、使えないわけですね。
この度は教えてくださり、本当にありがとうございます。
勉強になりました!
No.1
- 回答日時:
以下のマクロを登録してください。
登録はシートモジュールになります。
標準モジュールに登録してはいけません。
(上記の意味が分からない場合は、その旨補足してください)
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 7 'G列の場合
Case 15 'O列の場合
Case Else
Exit Sub
End Select
Application.EnableEvents = False
Target.Offset(, 1).Value = Now '1列右側のセルに時刻を設定
Application.EnableEvents = True
End Sub
tatsumaru77さん
ご解答ありがとうございます。
私の一番知りたかった方法を簡潔に分かりやすく教えてくださり、本当に助かりました!ベストアンサーには解説をつけてくれた方とさせていただきましたが、一番理想のtatsumaru77さんのコードを使用させていただいております。
本当に、心から感謝しています。
この度は、本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
Excelのプルダウンで2列分の情...
-
i=cells(Rows.Count, 1)とi=cel...
-
指定した条件で行セルを非表示...
-
Excelで指定した日付から過去の...
-
Application.Matchで特定行の検索
-
EXCELで変数をペーストしたい
-
特定の文字を条件に行挿入とそ...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA マクロ ある列の最終...
-
連続する複数のセル値がすべて0...
-
【EXCEL VBA】Range("A:A").Fi...
-
【Excel VBA】指定行以降をクリ...
-
EXCELのVBA-フィルタ抽出後の...
-
VBA初心者です。結合セルを保持...
-
エクセルVBAで結合セルの真ん中...
-
Excelのハイパーリンクにマクロ...
-
特定行の色を変えたい(FlexGrid)
-
ExcelのVBA・チェックボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
i=cells(Rows.Count, 1)とi=cel...
-
ExcelVBAを使って、値...
-
【Excel VBA】指定行以降をクリ...
-
特定のセルが空白だったら、そ...
-
EXCELで変数をペーストしたい
-
Excelで指定した日付から過去の...
-
VBAの間違い教えて下さい
-
【Excel】指定したセルの名前で...
-
Excelのプルダウンで2列分の情...
-
エクセルVBAでコピーして順...
-
Excel vbaで特定の文字以外が入...
-
Excel VBA、 別ブックの最終行...
-
【VBA】指定したセルと同じ値で...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
VBA初心者です。次のVBAコード...
-
指定した条件で行セルを非表示...
-
VBAでセルをクリックする回...
-
DataGridViewの各セル幅を自由...
おすすめ情報