会社を卒業したのんちおじさん。

人生は知恵と工夫と思いやり!
優しさほど強いものはなく、本当の強さほど優しいものはない -ラルフ・W・ソックマン-

やっと出来たぞ!

2007-09-29 22:52:56 | Excelのお話
日付操作マクロ」で

> うちのオフコンは日付を例えば「2007/07/10」ならば「70710」または「070
> 710」という文字列で出力する。
と書きました。

ところが売上データをエクスポートすると「2007/07/10」ならば「1070710」と出力するのです、何でこうなるかというとオフコン管理者である社長の性格そのままだということです、この場合なんらの加工もせず垂れ流しているだけというわけです。

で、なぜ「1070710」になるかというと、これは「w2k」つまり「2000年問題」に対処するためのものです、100年前にリセットされないように頭に「1」を付ければ2099年までは使えるわけです、それまでには当然西暦フルスペック対応のシステムに入れ替えるだろうし・・・・・・・・・。

でもうちの会社は100年も持たないでしょう、運が良くて身売りですね。

閑話休題。
「1070710」を表計算やデータベースソフトで「普通」に扱える日付データに変換するのに大分前から苦労しています。

日付.value=mid(日付,2,2)& "/" &mid(日付,4,2)& "/" &right(日付,2)

とやると「2010/7/7」となります、そこで

Range("日付").NumberFormatLocal = "@"
日付.value=mid(日付,2,2)& "/" &mid(日付,4,2)& "/" &right(日付,2)

と書式を文字列にすると「07/07/10」となり「やったあ!」と気を良くしたのも束の間、これはあくまでも文字列のままで・・・、結局何をしたいかというとピボット・テーブルでデータの分析をしたいのです、文字列のままでは「月」毎に括ることが出来なくて非常に困っていたのです。

昨日はようやく2階でPCの前に居られる気候だったので丸一日悪戦苦闘していました、でもどうしてもだめで諦めて風呂に入り、寝ようと2階に上がってきました、そしていつもの習慣で床に入る前にPCを点け、諦めきれずにVBA関数のヘルプを見ていたら「DateSerial関数」というのが目に付きました。

これは DateSerial(yyyy,mm,dd) でそれぞれの引数を指定することで「シリアル値」に変換してくれる関数です、そこで眠い目をこすりつつ作ったのがこれです。

Sub お馬鹿なAS400の日付を直す()
  Dim 行 As Integer
  Dim 範囲 As Range
  Dim 日付 As Variant

  行 = Range("A1").CurrentRegion.Rows.Count
  Set 範囲 = Range(Cells(1, 1), Cells(行, 1))

    For Each 日付 In 範囲
      日付.Value = DateSerial(Left(日付, 3) + 1900, _
       Mid(日付, 4, 2), Right(日付, 2))
    Next

  範囲.Columns.AutoFit
End Sub

おやすみ~~(-_-)zzz

ほんとにこれでいいの?

2007-09-29 10:50:24 | ISO14001(USO800)
職場ではISOの一環で社員全員に小さなカードを持たせています、裏に行動指針が刷られていてその中から「自分はこれをやる」というのを選んで見開きに手書きで写し取りそれを空で言えるようにしていなければなりません。

でもこれがやたら長くて専門用語が入っていたり条文のような宣誓調の文句なんです、それを年一回ISOの認証業務を委託されている業者が監査に来たときに喋くるのです。

なんで「私は不要な明かりは消します。」とか「私はアイドリングストップをしています。」とか「落ちているごみは必ず拾ってゴミ箱に入れます。」とかの至極簡単で誰にでも分かりやすいものにしないのでしょう、言わされたものってなかなか本気にはなれませんよね。

もちろん根回しがちゃんと出来ていてしゃべらされる人間には前もってその旨知らされています、茶番だから当然でしょう。

以前に何度か書いたかもしれませんが最近の若い人達はとやかく言われることが多いですがその多くは環境に好いと思うことは実は自発的にやっている人がとても多いのです、ただシャイなだけでいわゆる「大人」たちに分からないだけなんです、職場の年寄り連中は見習うべきですね。

去年職場とは無関係のあるISOのコンサルタントを生業としている方に相談したことがあります、その中で

「あなたの職場でやろうとしていることはISOにそぐわない面もある、おそらくあなたの職場が依頼したコンサルタントが万が一認証を通らないと困るのでそのコンサルタントの自衛手段で盛り込んだ内容ではないだろうか」

ということでした、そしていわく「私なら絶対にそんなことはしません」と言っていました、そして「普段環境に好いと思い実行していることを自分を信じてやり続けることが結果としてISOに沿った行動につながります。」と締めくくっていました、結局それが一番大事なことなんですね。