• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ある条件の下でセルに値を入力するには??)

セルに値を入力する方法とは?

このQ&Aのポイント
  • セルに値を入力する方法について教えてください。
  • 具体的な例を使って説明してください。
  • マクロを使用して値が入力されたセルに条件付書式を適用する方法も知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

C1に8:00から15分刻みであった場合、 Sub test2()   Dim r As Range, rr As Range, rs As Range, v   Dim st As Integer, en As Integer, i As Integer   Set rr = Range("C1").Resize(, Cells(1, Columns.Count).End(xlToLeft).Column - 2)   ReDim v(1 To rr.Count)      For Each rs In rr       i = i + 1       v(i) = rs.Text   Next   For Each r In Range([A2], Cells(Rows.Count, 1).End(xlUp))       With Application            st = .Match(r.Text, v, 0)            en = .Match(r.Offset(, 1).Text, v, 0) - st       End With            r.Range("B1").Offset(, st).Resize(, en + 1).Value = 1   Next   Erase v End Sub エラー処理はしてないですが。 私にはこんな感じにしかなりませんでした。

nexthop
質問者

お礼

御礼の返事が遅れました。申し訳ございません。 事細かに何度もありがとうございました。 n-junさんのおかげでいいものが出来そうです。

その他の回答 (3)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

>しかも、0815,0830をセルの結合で1つにしており >結果的に8時から9時に行く間にセルが4つなっているところと >そうでないところができていたので 0815,0830と時刻表示ではなく文字列なのですか? あと、結合したセルに0815,0830が一緒にあるとなると、MATCHとかも 難しくなりますね。(私には) 確実に15分刻みで1セルに1時刻が入っていれば対応できそうなんですが。。。

nexthop
質問者

お礼

たびたびのご返答ありがとうございます。 >確実に15分刻みで1セルに1時刻が入っていれば対応できそうなんですが。。。 そうですよねー セルが統一していないとやりにくいのはこの上ないですよね>< >0815,0830と時刻表示ではなく文字列なのですか? あ、すいません、コロンを付け忘れました; データは時刻です。 大変失礼な言い方ですが 仕様変更も念頭において考えたいと思いますので 15分刻みの場合ですどのようになるか ご教授願いませんでしょうか?

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

Sub test()  Dim r As Range  Dim st As Integer, en As Integer  For Each r In Range([A2], Cells(Rows.Count, 1).End(xlUp))      st = Val(Format(r.Text, "hh"))      en = Val(Format(r.Offset(, 1).Text, "hh")) - st      r.Range("B1").Offset(, st - 7).Resize(, en + 1).Value = 1  Next End Sub こんな感じでしょうか?

nexthop
質問者

お礼

はい。まさにこんな感じです。 ありがとうございました。 大変助かりました。 処理はうまくいっているようですので 自分はこの文がどういっているのか 早く理解できるようにしたいです^^; また、何かありましたら宜しくお願いします。

nexthop
質問者

補足

たびたび申し訳ございません。 本日ファイルを除いてみたら セルが細分化されていたんです。 時間単位が15分毎になっており しかも、0815,0830をセルの結合で1つにしており 結果的に8時から9時に行く間にセルが4つなっているところと そうでないところができていたので 今回いただいたような endからstartを引くという感じではなく matchのような、該当セル(開始時間・終了時間)が完全一致 している場合数値を入力するという風にはなりませんでしょうか。 てっきり、私も1時間単位だとばっかり思っていたので 大変申し訳ないですが、再度宜しくお願いできないでしょうか?

回答No.1

C2: =IF(AND(C$1>=$A2,C$1<=$B2),1,"") あとはこれをコピーして表全体にペーストするだけ。

nexthop
質問者

補足

早速のご回答ありがとうございます。 回答していただいて大変申し訳ないのですが、 書き忘れました点 『セル内に計算式は入れたくないのです。』 この点も踏まえて宜しくお願い申し上げます。

関連するQ&A