• 締切済み

VBAでの日付について

pringlezの回答

  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.2

セル一つ一つをループで回し 1つのセルのvalueを比較するという形にしないといけません。 どうしてもVBAでやるなら。 この場合には関数で記述した方が簡単だとは思いますが。

1961hit
質問者

お礼

ありがとうございます。 確かに関数のほうがかんたんなのですが、今VBAの勉強中なので …。また、よろしくお願いします。

関連するQ&A

  • VBAを使って日付を検索するには?

    A列(すべて):2005/10/25前に契約した人にはB列に○を付けるVBAがうまくいきません。

  • VBA 日付を古い順へ並べる

    調べても分からなかったので質問致します。 やりたいこと A列には適当な用語があり B列にはそれぞれ日付があるとして 例:A1には『あいうえお』   B1には『2022/5/1』   A2には『かきくけこ』   B2には『2022/8/1』   A3には『さしすせそ』   B3には『2022/4/1』 とそれぞれセルに入力されています。 これを日付が古い順に並べたいのです。 例:A1には『さしすせそ』   B1には『2022/4/1』   A2には『あいうえお』   B2には『2022/5/1』   A3には『かきくけこ』   B3には『2022/8/1』 のように並び変えたいのですが これってフィルター機能ではできないでしょうか? これを実現できるVBAコードを記入して頂けますと 助かります。 回答よろしくお願いいたします。

  • VBAの日付について教えてください

    VBA初心者です。 簡単な質問かもしれませんが、教えていただければと思います。 下記のように日付と時間が並んでいる場合に、営業日の最終注文の時間(B列)をF列にコピーしたいのですが、どうもうまくできません。 例えば、2008/1/15では17:10:00をF列にコピーして、2008/1/16では14:05:00をF列にコピーして・・・というマクロを作成したいのです。 どなたか知恵をお貸しください。 よろしくお願いします。  A        B      C      D     E    F            受注時間   品名     個数 2008/1/15   10:50:00    ・      ・   ・ 2008/1/15   12:55:00    ・      ・   ・ 2008/1/15   15:05:00 2008/1/15   17:10:00 2008/1/16   8:52:00 2008/1/16   14:05:00 2008/1/19   11:10:00 2008/1/19  15:15:00 2008/1/21  9:20:00 2008/1/21  9:53:00  ・  ・  ・

  • Excel VBA を使って 日付の表示

    お世話になります。VBAを使ってSQLDBからデーターの読込みを行っているのですが、読込まれたセルが日付やカンマ編集する方法が判りません。 どなたかHELPをお願い致します。  例) Sheet1 の A列 が日付          B列が 数字 宜しくお願いします。

  • VBAでタイムシリアル値から日付のみ抜き出す方法について

    VBAでアプリケーションを作っています。 要件 1.yyyy/mm/dd/hh:mm形式のA列があり、その列をもとにB列に日の部分だけ表示したい。たとえば、9/22日の場合は22という風に数値型で表示。 2.B列の値を使ってソートするため、タイムシリアル値の表示形式をNumberFormatなどで変換するのではなく、VBAの処理でタイムシリアル値から日を求めたい。 3.A列の行数は毎月異なる。 要件3の部分は、while文でA列が空白になるまでループさせることで解決しました。(数千行あるので、もう少し効率化できたらいいのですが) 今、要件2の部分でつまづいています。 はじめはA列をコピーしてB列にペーストしたのですが、それでは当然実データがタイムシリアル値のためソートするとおかしくなりました。 なのでA列から日のみを抜き出してB列に入れる処理を作成中なのですが、 Dim cnt As Integer Dim day1 As Date Dim day2 As Integer cnt = 3 Do While ActiveCell.Value <> "" Range("A" & cnt).Select day1 = day(Selection.Value) day2 = CInt(day1) Range("B" & cnt).Value = day2 cnt = cnt + 1 Loop これで元データ(8/1 0:00~8/31 23:55まで昇順)で試すと、 8/1は普通に1が入るのですが、8/2以降は1900/1/2といった 形式のデータがB列に入ってしまいます。 初心者で申し訳ないのですが、どうしたらいいのかわからないので教えてください。 また、要件3はループだと8000回以上繰り返すことになるのですが、 もっと効率のいい方法があれば知りたいです。

  • 連続で印刷 VBA エクセル

    ・シート1のA列に番号が入力されており、B列以降に情報が入力されています。 ・シート2のA1セルに上記に番号を入力すると、B列以降の情報がフォーマットにあわせて表示する様になっています。 ・印刷する場合、A列に番号を入力→印刷を繰り返します。 ○コレをVBAで自動化できないでしょうか?

  • Excel文字列の連結について教えてください(VBA)

    Excelの文字列の結合について教えてください。 色々調べたのですが、VBA自体がよくわからず困っています。 やりたい事は、(Excel表をご参考) 『セルA1とB1とA2の文字を固定で、セルA3以降の文字以降を  順次連結してcsvに書き出すVBAを作成したい。』 どうしても繰り返す連結マクロがわかりません。 ExcelVBAに詳しい方、教えてください。 よろしくお願いします。 結果例) 20080501A01 20080501A02 20080501B01 20080501C01   ・   ・(300件以上続きます) <Excel表>    A列  B列 1  2008  05 2  01    3  A01 4  A02 5  B01 6  C01 7  ・ 8  ・

  • エクセルVBAでのまとめ計算

     初めまして、よろしくお願いします。 データーで    A      B     C     D      E ・・・ 1              5     7      2 2              3     7      0 3 4              6     3      6 5              2     8      3 6              0     3      4 ・     ・      ・      ・      ・ ・     ・      ・      ・      ・ 100             3     4      5 という表がありますA列には(C列の値/(D列以降の平均値))をB列には(C列の値-(D列以降の平均値))を表示させたいと思います。たまに3行のような空白の行があります。関数式ではなく、VBAで解る方、よろしくお願いします。

  • VBA 最終行の日付を求める

    VBA初心者です。 最終行の日付を求める方法を教えて下さい。 以下のような場合、2009年3月1日 そしてその結果を別のセル(例えばD1セルとか)に出力する方法もお願いします。 ---------  A列  B列 C列  2009  1  1 2009  2  1 2009  3  1

  • エクセルのVBAに関する質問です。

    エクセルのVBAに関する質問です。 仮にA列にA1からA14まで(12341231212345)と入っていて、さらにB列にB1からB14まで(38906493087639)と入っていたとします。A列の(2)の隣にあるB列の数字はそれぞれ(8407)になりますよね。 この2のとなりのB列の数字を、A列の最初から(1234)(123)(12)(12345)と1を区切りとして、C列に、2に対応していた先ほどの数字を入力したいのです。 つまりC列には(88884440077777)と入るようにしたいのですが、VBAド素人の私には解説書を読んでもいい知恵が浮かびません。 どなたか、ご説明か、できればVBAのコピーを取らせていただけないでしょうか? よろしくお願いいたします。