エクセル雑感
エクセルの日付のお話

ExcelマクロVBAとエクセル関数についての私的雑感
最終更新日:2013-09-05

エクセルの日付のお話


エクセルでの日付の扱いは特別です。


では、エクセルでの日付についてのお話です。



エクセルでの日付は1900/1/1を1として、そこからの日数になっています。


通常、私もこのように説明するのですが、実は、ちょっとからくりがあります。


VBAでは1899/12/31が1になっているのです。


1日ずれています。えっ、て思いますか、



1900年はうるう年ではないらしいのですが(らしいってw)、


1900/1/1から連続データを作成すると、なぜかワークシート上では、1900/2/29が表示されます。


でも、VBAで1日ずつ足していくと、1900/2/28の次は1900/3/1になります。



つまり1900/3/1より前ではシートとVBAでは1日のずれがあるのです。


逆に言えば1900/3/1以降は一致しています。


ですから通常は問題なく使えています。

そもそもなぜそのようになったのか、MSも色々説明しているようですが、言い訳にしか聞こえないw。



つまりシートでは1900/1/1から始まり、VBAでは1899/12/31から始まります。


そして、シートでは1900/2/29が1日余分に存在しているので、その後は一致すると言う事になります。


ちょっと無理やりってかんじですよね。



ですから、1900年代のデータを扱うときは気を付ける必要があります。


でもそんな年代のデータってどんなデータなんでしょうね。


私は扱った事はありません。


誕生日ってことはないですよね、日本最高齢を超えてますから。


あっ、戸籍上ではもっと高齢の人がいたんでしたねw。



エクセルでの書式設定については、「日付、時刻に関するあれこれ 」をご覧下さい。




同じテーマ「エクセル雑感」の記事

エクセルのマクロで何ができるか?

エクセルでは、マクロを使えば、色々な事ができます。自動転記、自動集計… 大量データの処理、手作業なら数時間かかる処理も、数秒で処理できてしまいます。もちろん、単なる事務の合理化だけでなく、本格的な、業務システムも作成可能です。
エクセル関連ツイート
「エクセルvbasort互換性」との検索。まだまだ2003ユーザーが多いので、ソート・条件付き書式、フィルタ、関数(SUMIFS等)…2003までの機能で作成するようにして下さい。ソートは2003ではキーが3つまでですが、キーを変更してソートを繰り返す事で対応可能です。
プログラミングについて
プログラミングをしていると、時に「開けゴマ」みたいなのにぶつかる。確かに扉はひらくのだが、「いったいこれは何だ、特にゴマって何だ」となる。危険のない命令なら別に知らなくても良いだろうが、多少でも危険性のある場合はそんな訳にはいかない。
エクセルの日付のお話
素直なプログラミング
プログラムを作る場合、「可読性」「保守性」等々に気を配る必要がありますが、まずは、素直なコードを書くことでしょう。テクニックに走ったりせず、頭に浮かんだ事をそのままコーディングしていく事も重要です。頭に浮かんだ事が、今の自分のスキルレベルなのですが、スキルが上がれば、頭に浮かぶ事も、少しずつ変化してきます。
エクセル関連ツイートNo2
何を始めるにしても、まずは、それぞれの用語というものは覚える必要があります。これを無視して進んではダメですよ。困った時に調べようとしても、なかなか目的にたどり着けないことになります。基礎をおろそかにしては、結局後で時間を浪費することになります。
エクセル関連ツイートNo3
無理してクラスを使う必要性はないと思っています。VBAの場合は、完成後にプロではない他人(ユーザー等)にとって易しくわかりやすく書くことが重要だと思います。なので私は極力クラスは使わずに易しいコードで、それでいて速度が速くなるように書くことを心がけています。
エクセル関連ツイートNo4
VBEのこの左下のボタン「プロシージャの表示」「モジュール全体を連続表示」このボタンの説明ってどこにも書いた覚えがないです。といいますかVBEの全体としての説明を書いてない。とはいえVBEの機能を全部説明するのは無理、VBA全体を理解しないとどのみち意味が通じないでしょうし。
エクセル関連ツイートNo5
「セルに特定の文字が含まれているかどうかの判定」A列に、Excelという文字を含む行を別シートに転記するとしたらどうするか。やり方がいっぱいありすぎる気も、、、大文字小文字を区別するかどうかで変わってきますね。直前のコマンドまたは操作を繰り返すExcelショートカット F4 これが一番使われているように思う。
IF文の整理と論理的思考
論理的思考でIf文を整理することについて、簡単な例で解説していきます。無駄な条件が入っていたり、条件が重複しているプログラム程理解しずらい物はありません。問題です。以下のマクロについて、気が付いたことを指摘して下さい。
エクセルVBAを覚えるには
エクセルのマクロ(VBA)を覚えるには、何が必要か… マクロで何ができるのか、そして、マクロで何を自動化したいのか、そのイメージをしっかりと持つことです。VBAの本を買ってきて、1ページ目から読み始めたとしたら… ほぼ確実に、途中で挫折すると思います。


新着記事NEW ・・・新着記事一覧を見る

SQL関数と演算子|SQL入門(12月1日)
データの取得:集約集計、並べ替え(DISTINKT,GROUP BY,ORDER BY)|SQL入門(11月30日)
データの取得:条件指定(SELECT,WHERE)|SQL入門(11月29日)
データの挿入:バルクインサート|SQL入門(11月28日)
データの挿入(INSERT)と全削除|SQL入門(11月26日)
テーブル名変更と列追加(ALTER TABLE)とテーブル自動作成|SQL入門(11月25日)
テーブルの作成/削除(CREATE TABLE,DROP TABLE)|SQL入門(11月24日)
データベースに接続/切断|SQL入門(11月23日)
SQLiteのインストール|SQL入門(11月22日)
SQL入門:VBAでデータベースを使う|エクセルの神髄(11月22日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.マクロって何?VBAって何?|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • エクセルの日付のお話

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
    掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ