- ベストアンサー
EXCEL2010 1つのセルに現在日時と曜日表示
お世話になっております。 Excelを使う仕事につきまして、悪戦苦闘しています。 決められた1つのセルをマウスでクイックした時に自動で、 下記のようなフォーマットで現在日時と曜日を表示したいのですが、 どのような関数を使ったらよいのか分かりません。 記載のフォーマット=2022/4/6(水) 21:48 どなたか、ご教示頂けると大変助かります。 以上 宜しくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No.5の追加です。 間違ってダブルクリックしても日時が更新されますので、ダブルクリックしたら日時を更新するかどうか問い合わせる場合は Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address <> Range("A1").Address Then Exit Sub End If Cancel = True If MsgBox("日時を更新しますか?", vbYesNo + vbQuestion) = vbYes Then Target.Value = Format(Now(), "yyyy/m/d (aaa) h:mm 更新") End If End Sub
その他の回答 (5)
- kkkkkm
- ベストアンサー率66% (1725/2595)
> ダブルクリックした時の日時、曜日、更新の文字を書き込みたい ダブルクリックでしたら 以下のコードを該当シートのコードに以下を記載してください。 通常ダブルクリックしたら編集状態になりますが、A1だけ編集状態にならないようにしています。 F2キーを押したり数式バーをクリックしての編集はできます。 A1以外でダブルクリックした場合編集状態になります。 Cancel = True を外すとA1もダブルクリックで編集状態になります。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address <> Range("A1").Address Then Exit Sub End If Cancel = True Target.Value = Format(Now(), "yyyy/m/d (aaa) h:mm 更新") End Sub 添付画像の状態になるようにしてください。 左のシート名をダブルクリックするとそのシートのコードを記載するモジュールが右に開きます。 画像はSheet1を選択している状態です。
お礼
補足について、早速のご教示ありがとうございました。 教えて頂いた通りに、sheet1へVBAスクリプトを書き込み、 A1セルをダブルクリックすると、希望通りの日付を出す事ができました。大変助かりました。 A1セルで直接関数を入力するやり方など、大変勉強になりました。少しづつでもEXCELの扱いが上達出来るよう、精進していきますので、今後ともよろしくお願いします。
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルに慣れていないようで、言っていることが区別して表現できてない。 (1)>でクイックした時に自動で、(正しくはクリックだろう) こちらは、VBAでの処理になる。「何々したときに、何々する」は、イベント処理という仕組みで処理する。これはVBAでも、学習を始めたころでは、イベント処理というのは教えないはず。 (2)>関数を使ったらよいのか VBAでも関数という言葉は、よく使うわけだが、ここで言っているのは、エクセルのワークシート関数というものであろう。 これは、(A)前もってか(B)データ入力後に、 セルに関数を入力して、設定するものだ。 ただし関数の大原則として、 (1)データのあるセルには式を入れられない。壊れてしまう。 (2)値は1セルあたり、1つの値しか返せない。 (3)複数セル範囲に似たような式を、当てはめようとすると、式の複写という仕組みで、行う。 こういうことが判っているのかな。 下記の表示形式の設定は、セルにデータを入れた後でも、前もって入力前でも設定して置ける。 ーー 日付けは、 (1)今日の日付か (2)経過後あとから、や先の日付などを、書類(データ原書)など見て、その日付を入れるのか がはっきり書いてない。 どれもこれも質問の書き方が、頼りない。 ーーー 当日日付だけは、便利な入力操作があるので、例外的な説明になる。 (1)なら、1セルに日付だけなら CTRLキーを押しつつ、;(セミコロン)を入力して、ENTERで そのセルの表示形式をユーザー定義のyyyy/m/d(aaa) に設定しておく。 見た目 2022/4/7(木) になる。 ーー 時刻も併せて1セルに出す方法は CTRLキーを押しつつ;(半角セミコロン)、その後1半角スペース、その後:(半角コロン)の後にENTERキー 表示形式は、「セルの書式設定」の「表示形式」の画面で、ユーザー定義で yyyy/m/d(aaa) hh/mm(hhの前に半角スペース) を設定する。 ーー 日付けを好みのスタイルで入れようとする場合、適当な表示形式を、セルに設定するが、そのセルの値は、日付シリアル値というものでないといけない。 日付シリアル値というのを聞いたことがありますか。ないなら、すこし系統だって勉強する必要があると思う。 日付けを表す文字列を作る方法もあるが、優先すべき方法ではない。
お礼
質問の仕方など、アドバイス頂きありがとうございます。 自分の質問の文章を振り返って読み直すと、恥ずかしい限りです。 CTRLキーを押しつつ;(半角セミコロン)、その後1半角スペース、その後:(半角コロン)の後にENTERキーのご教示ありがとうございました。 今後ともよろしくお願いします。まずは御礼まで。
- tamu1129
- ベストアンサー率58% (1295/2225)
何がしたいのかがはっきりしませんが、あるセルをクリックした時にその日時が画面に表示されればいい? それともそのセルにクリックした時の日時を入力したい? どっちでしょうか? ワークシートにVBAコード貼り付けておいてやれば希望の事は出来るんですが、単にそのセルクリックしたでは意図しない動作を起こしそうです ダブルクリックなど明示的にその行動を起こした場合動作する仕様にした方がいいでしょう やりたい事はnow関数でそのタイミングの日時を取得 format関数で希望の表示形態になるようにして変数に格納して利用するなり、ダブルクリック時にフォーマットで希望する形態になるようにnow関数で取得したその時の日時の値をセルに代入させる事をやればいいです
- kkkkkm
- ベストアンサー率66% (1725/2595)
> マウスでクイックした時に自動で ダブルクリックしてすぐエンターでしたら =TEXT(NOW(),"yyyy/m/d (aaa) h:mm") A1を選択したらということでしたらマクロで Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> Range("A1").Address Then Exit Sub End If Target.Value = Format(Now(), "yyyy/m/d (aaa) h:mm") End Sub
補足
ご教示下さりありがとうございます。 お寄せ頂いた皆様の暖かいご指摘はもっともな事と反省しております。この度、ご教示頂いた事は大変勉強になりました。 私がやりたい事は、シート内の作業が完了した後に、A1セルを手動でマウスをダブルクリックすると、自動で右記のようなフォーマットの記載(2022/4/9(土) 23:59 更新)でダブルクリックした時の日時、曜日、更新の文字を書き込みたいと言う事でした。 ご教示頂いているVBAのスクリプトをマクロに入れて実行すると、『EndSub』が足りませんとエラーが出ました。 マクロには、以下のように記述しています。 Sub bb() Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> Range("A1").Address Then Exit Sub End If Target.Value = Format(Now(), "yyyy/m/d (aaa) h:mm") End Sub End Sub マクロの実行も良く分かっておりません、すみません。 大変お手数ですが、再度ご教示をお願い出来ると幸いです。 以上 宜しくお願いします。
- SI299792
- ベストアンサー率47% (774/1621)
セルの書式設定、ユーザー定義「yyyy/m/d(aaa) h:mm」 関数でやるなら、A1に日時が入っているとして、別セルに =TEXT(A1,"YYYY/M/D(AAA) h:mm")
お礼
ご教示頂きありがとうございました。 勉強になりました、今後ともよろしくお願いいたします。
お礼
大変お世話になります。 更新するかどうか問い合わせるマクロについても、ご教示頂きありがとうございます。こちらも親切なやり方なので、使わせて頂きます。