アプリ版:「スタンプのみでお礼する」機能のリリースについて

右表は設定時間で、ユーザーが自由に変更できる不規則な並びとなっています。
左表のNo.1には動作する始めの時間が入力されており、No.2以降は右表を参考に日時を入力していきます。
例えば、No.2は「03月29日(火) 20時00分」、No.3は「03月29日(火) 22時20分」、No.4は「03月29日(火) 23時50分」、No.5は「03月30日(水) 01時00分」、No.6は「03月30日(水) 02時40分」…となるようにしていきたいです。

No.1を手入力すると、No.2以降が自動で入力されるマクロを教えてください。
使用環境は、Windows10、Excel2016です。

「マクロで設定時刻の入力がわかりません」の質問画像

質問者からの補足コメント

  • 1.No.2にはNo.1で入力した時間の次の時間を表示しています。
    No.1で「03月29日(火) 05時30分」になっているので、右表の「5:30」の次である「20:00」をNo.2に表示しています。

    2.時間はシリアル値で、表示をセルの書式設定で変更しています。

    3.右表を繰り返し表示させたいので、
    No.6「03月30日(水) 02時40分」
    No.7「03月30日(水) 05時30分」
    No.8「03月30日(水) 20時00分」
    No.9「03月30日(水) 22時20分」…とNo.12まで表示させたいです。

      補足日時:2022/03/30 16:37

A 回答 (2件)

こんにちは



ルールの説明が無いのでよくわからないため、勝手に解釈しました。
・E4:E9の時刻は必ず昇順に並んでいるものと仮定しました。
・また、時刻や日時は全てシリアル値であるものと仮定しました。

以下ではいかがでしょうか?
Sub Macro1()
Const f1 = "mm""月""dd""日""(aaa) hh""時""mm""分"""
Const f2 = "=IF(C$4="""","""",INT(C$4)+INT((IFERROR("
Const f3 = "MATCH(MOD(C$4,1)+10^-5,E$4:E$9),0)+ROW(A1)-1)"
Const f4 = "/6)+INDEX(E$4:E$9,MOD(IFERROR(MATCH(MOD(C$4,1)"
Const f5 = "+10^-5,E$4:E$9),0)+ROW(A1)-1,6)+1))"

With Range("C5:C15")
.NumberFormatLocal = f1
.FormulaLocal = f2 & f3 & f4 & f5
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。できました。
「Const」をはじめて見たので、勉強しなおします。

お礼日時:2022/03/30 16:42

補足要求です。


1.なぜ、No.2は「03月29日(火) 20時00分」になるのでしょうか。
「03月29日(火) 20時00分」になる規則がわかりません。

2.左側の日付・時刻はシリアル時刻であり、セルの書式設定で、
「03月29日(火) 05時30分」となってると理解してよろしいですか。(文字列を打ち込んだわけではないと理解しました)
    • good
    • 0
この回答へのお礼

補足入力しました。

お礼日時:2022/03/30 16:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!