- ベストアンサー
セルに値を入力する方法とは?
- セルに値を入力する方法について教えてください。
- 具体的な例を使って説明してください。
- マクロを使用して値が入力されたセルに条件付書式を適用する方法も知りたいです。
- みんなの回答 (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 エラー処理はしてないですが。 私にはこんな感じにしかなりませんでした。
その他の回答 (3)
- n-jun
- ベストアンサー率33% (959/2873)
>しかも、0815,0830をセルの結合で1つにしており >結果的に8時から9時に行く間にセルが4つなっているところと >そうでないところができていたので 0815,0830と時刻表示ではなく文字列なのですか? あと、結合したセルに0815,0830が一緒にあるとなると、MATCHとかも 難しくなりますね。(私には) 確実に15分刻みで1セルに1時刻が入っていれば対応できそうなんですが。。。
お礼
たびたびのご返答ありがとうございます。 >確実に15分刻みで1セルに1時刻が入っていれば対応できそうなんですが。。。 そうですよねー セルが統一していないとやりにくいのはこの上ないですよね>< >0815,0830と時刻表示ではなく文字列なのですか? あ、すいません、コロンを付け忘れました; データは時刻です。 大変失礼な言い方ですが 仕様変更も念頭において考えたいと思いますので 15分刻みの場合ですどのようになるか ご教授願いませんでしょうか?
- n-jun
- ベストアンサー率33% (959/2873)
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 こんな感じでしょうか?
お礼
はい。まさにこんな感じです。 ありがとうございました。 大変助かりました。 処理はうまくいっているようですので 自分はこの文がどういっているのか 早く理解できるようにしたいです^^; また、何かありましたら宜しくお願いします。
補足
たびたび申し訳ございません。 本日ファイルを除いてみたら セルが細分化されていたんです。 時間単位が15分毎になっており しかも、0815,0830をセルの結合で1つにしており 結果的に8時から9時に行く間にセルが4つなっているところと そうでないところができていたので 今回いただいたような endからstartを引くという感じではなく matchのような、該当セル(開始時間・終了時間)が完全一致 している場合数値を入力するという風にはなりませんでしょうか。 てっきり、私も1時間単位だとばっかり思っていたので 大変申し訳ないですが、再度宜しくお願いできないでしょうか?
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
C2: =IF(AND(C$1>=$A2,C$1<=$B2),1,"") あとはこれをコピーして表全体にペーストするだけ。
補足
早速のご回答ありがとうございます。 回答していただいて大変申し訳ないのですが、 書き忘れました点 『セル内に計算式は入れたくないのです。』 この点も踏まえて宜しくお願い申し上げます。
お礼
御礼の返事が遅れました。申し訳ございません。 事細かに何度もありがとうございました。 n-junさんのおかげでいいものが出来そうです。