• ベストアンサー

下のセルに[前日]を下送りしたい

A2=今日の日付 A3=昨日の日付 A4=一昨日の日付  ・  ・   ・ という具合に特定のセルを 絶えず新しい日付にするマクロありましたらコピーさせて下さい。 現在は 日々の収支金額を記入する日付欄を 営業日の日付をWORKDAY関数を使って 1ヶ月~2か月分行方向にドラッグ製作しています。 下へスクロールして本日の欄を出していますが、新旧逆に表示できれば便利なのですが。 ご教授お願い申し上げます。

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

  • ベストアンサー
回答No.3

マクロではありませんが、 A2 =TODAY() A3 =WORKDAY(A2,-1) A4以下A3をコピーでご希望に沿うと思いますが、これではダメですか?

noname#245250
質問者

お礼

ありがとうございます。 =+WORKDAY(TODAY(),0) =+WORKDAY(TODAY(),-1,年間祭日表)     ただし-1-2-3はNO1様のご回答を利用して、別列に-1から <過去1年分の平日日数分の行数分を> 作っておき参照させました。 心より感謝申し上げます。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.5

> PQRSの列の20行目以下限定で下送りできないでしょうか? 何か想像付かないようなシートの使い方のようですが・・・ VBAなので、どのようにも出来ますが、どのようにすればいいのか、いまいち良く分りません。 提示のコードは、全列に対して2行目を挿入していますが、これをA列の2行目にセルを挿入し、 今日の日付を設定し、PQRS の各列は、20行目にセルを挿入する という意味ですか? となると、B~O列は、どうなるのですか? 「下送り」という表現でなく、例えば、「何処何処に行方向に対してセルを挿入する」と いうように実際Excelを操作する手順で表現していただけませんか。 > 同一シート内で増築繰り返し複雑化したシートです。 何かそんな感じですが、見直した方がいいのではないかと思いますが・・・。

noname#245250
質問者

お礼

ありがとうございました。 これで閉じます。 いずれの日か また お助け下されれば幸いです。

noname#245250
質問者

補足

重ねてお相手下さり ありがとうございます。 シート[取引]のNからT列の行20から最下行までが使用可能セルで 他は参照データーや目視情報が入っている イレギュラーな使い方です。 ワープロ機のカルクで 1シートのみの経験者でこうなりました。 画面は21吋ですが、 リアルタイム情報など多ウインド表示で、 エクセルウインドは10行6列ぐらいの表示(解像度1600の時で画面の1/9位、 時たまする2048表示では1/16位)です。 売り指値別損得高や下落時買い増しによる平均株価計算欄を通常表示してます。 で多シートで小ウインドに起きる並びきらないタブのスクロールをする位ならシート画面そのものをスクロールしてデーター確認した方が良いと言うのが今までの考えです。 とりあえず此の侭と仮定して。 設計参考になるか不安ですが、以下の通りです。 日付 T1:U10=取引休日欄 Q20 =WORKDAY(TODAY(),0,T$1:U$10) Q21 =WORKDAY(TODAY(),R21,T$1:U$10) 日別損益額 シート[売買暦]の売買結果値を参照 P20 =+SUMIF(売買歴!$I$758:$I$999,取引!P20,売買歴!$N$758:$N$999) 日別資産合計額=買予約値+手持株価+売買約定金額 R20 =+IF(TODAY()=Q20,C17,) 夜に手動で文字列化。 R21 前日の値 R22 前前日の値 注)C17のセルは 資産増減額 S20 =+IF(R20>0,R20-R21,"") S21 =+IF(R21>0,R21-R22,"") 1年の途中ですので、過去データーは手入力します。 毎日が始まるごとにTODAY()がQ20に表示され 前日までそこにあった日付は下の行に、他の列の値も日付に連動して移動する を目的とします。 株は下手ですので小規模。 アドインや分析ツールを使いたくて続けているみたい。 WEBで教わったautoOpen モジュールにはAltキー参加でセル加減など多数のショートカットキーがありエクセル楽しんでます。 推敲数時間かけてこんな説明お詫びします、 老いだけとは言いませんが。

すると、全ての回答が全文表示されます。
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

新しいデータを常に上に表示すると操作性が向上することが考えられます。 が、しかしその日付の入力方法によっては、大変危険な状態になりかねません。 当然、そのシートには、B列、C列等にその日付に対応するデータ(収支金額等)が ある訳ですよね。 そうするとTODAY等の日付関数を使用して自動的に日付だけが変動するようにすると 日付に対するデータが一致しなくなることもあるかも知れません。 まぁ、子供の小遣い帳程度のものならいいかも知れませんが、業務に使用するには、 とても危険です。 ということで、この場合は、日付は定数で入力することをお勧めします。 それで、現在「営業日の日付」を入れているということですが、現状では、営業日の 定義がはっきりしませんので、取り敢えず、このブックを開いた時点で、A列に今日の 日付が無かったら、2行目に「行挿入」し、今日の日付を設定するようにしています。 つまり、提示のコードでは、「ブックを開いた日」が営業日になり、営業日に1度も 開かないと、その日付けは存在しないことになります。 これを防ぐには、「営業日」の参照表(または定義)が必要です。 もし、日付の昇順ソート等により、今日の日付が、セルA2以外でも既に存在する場合は、 そのセルをアクティブにします。 一応、こんな感じですが、如何でしょうか。 Alt+F11で、プロジェクトウィンドウの「ThisWorkbook」をWクリックして表示された コードウィンドウに下記コードを貼り付けます。 Private Sub Workbook_Open() Dim Rng As Range Worksheets("Sheet1").Activate Set Rng = Range("A:A").Find(Date, lookat:=xlWhole) If Rng Is Nothing Then   Rows(2).Insert   Range("A2").Value = Date   Range("A2").Activate Else   Rng.Activate End If Set Rng = Nothing End Sub

noname#245250
質問者

補足

できました。 ありがとうございます。 すべての列で行挿入されますが、これを 決められた一つのセル以下(この場合は手動でセル挿入します)、できればPQRSの列の20行目以下限定で下送りできないでしょうか? 半日試行しましたがスキルないのでお手上げです。 P20以下のセル=SUMIF関数で参照した<他シート日付別売買損益値> Q20以下  年月日ですが =WORKDAY関数で株式市場休日記したセル <T$1:U$10>を参照したいです。 R20以下 日々の総資産値 手入力 S20以下  前日との資産差の数値 式=前日値ひく本日値 ワープロ機のカルク計算からPCに転向者で 同一シート内で増築繰り返し複雑化したシートです。 お手数をおかけして申し訳ございません。 気が向いたらで結構です。よろしくお願いします。

すると、全ての回答が全文表示されます。
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

直接の回答じゃないですがスクロールが面倒なら、 一番下を表示したい列のセルを選択して、Ctrl+↓で下方向に空白の直前に飛びますよ。

noname#245250
質問者

お礼

ありがとうございました。 失念しておりました。 ご指摘感謝申し上げます。

すると、全ての回答が全文表示されます。
  • mysticage
  • ベストアンサー率32% (52/158)
回答No.1

マクロではないですが、 例えば、A2セル(今日)のセルを右クリックしながら ドラッグしてください 右クリックメニューが出ると思います。 そこの一番下「連続データ(e)」というやつを選択 種類「加算」 増分値「-1」で逆算になると思います

noname#245250
質問者

お礼

ありがとうございました。 セルに5月20日と入力し、オートフィル記号[+]を右クリックしドラッグしてみますと、 できました。 ちょっと目的が違いましたが、覚えました。 感謝申し上げます。

すると、全ての回答が全文表示されます。

関連するQ&A