Top Banner
All Rights Reserved.Copyright © 山口システム開発(株)2018 1 VB6.0 改元対応 Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。 当件、2018/6/6 に法案が可決し、施行日に向けて順調に進んでおります。 具体的な新元号は改正一ヶ月前に発表との報道がなされており、システムにおいては準備が必要です。 こちらの資料では、マイクロソフトのサポート終了となっている、VisualBasic6.0(以降 VB6.0 と表記) について、当該製品の日付編集機能である Format について、現在の状況及び当製品のご紹介を記載し たものです。 VB6.0 での開発資産は未だ多く存在するように聞かれます。 当製品の VB6.0 改元対応 Format をご利用いただきますと、VBP(VB6.0 プロジェクトファイル)への BAS ファイル追加のみで改元対応が完了します。 最新の.NET Framework への移行が最善と思われますが、現行資産の対応措置の一つとして検討頂け ますと幸いです。 2019/3/11 追記 後続に記載いたしますが、2019/3/11 現在、Windows7,8.1,10 など、サポート期間内の製品については VB6.0 の Format 改元対応がなされております。 当製品につきましては、WindowsXp や Vista など延長サポート終了となった OS でも VB6.0 の改元対 応が行えます。それらを踏まえてご検討ください。 マイクロソフト社の和暦対応状況 マイクロソフト社の和暦対応状況は、次の公式ブログにて公開されております。 https://blogs.technet.microsoft.com/jperablog/ 内容からは、最新の.NET Framework 及びレジストリ修正による新元号の仮登録の方法や、合字利用 における UNICODE の対応についての記事はありますが、2018/10/31 現在、VB6.0 の対応についての 記載はありません。
9

VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1...

Jan 20, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

All Rights Reserved.Copyright © 山口システム開発(株)2018

1

VB6.0 改元対応 Format のご紹介

はじめに

2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

当件、2018/6/6 に法案が可決し、施行日に向けて順調に進んでおります。

具体的な新元号は改正一ヶ月前に発表との報道がなされており、システムにおいては準備が必要です。

こちらの資料では、マイクロソフトのサポート終了となっている、VisualBasic6.0(以降 VB6.0 と表記)

について、当該製品の日付編集機能である Format について、現在の状況及び当製品のご紹介を記載し

たものです。

VB6.0 での開発資産は未だ多く存在するように聞かれます。

当製品の VB6.0 改元対応 Format をご利用いただきますと、VBP(VB6.0 プロジェクトファイル)への

BAS ファイル追加のみで改元対応が完了します。

最新の.NET Framework への移行が最善と思われますが、現行資産の対応措置の一つとして検討頂け

ますと幸いです。

2019/3/11 追記

後続に記載いたしますが、2019/3/11 現在、Windows7,8.1,10 など、サポート期間内の製品については

VB6.0 の Format 改元対応がなされております。

当製品につきましては、WindowsXp や Vista など延長サポート終了となった OS でも VB6.0 の改元対

応が行えます。それらを踏まえてご検討ください。

マイクロソフト社の和暦対応状況

マイクロソフト社の和暦対応状況は、次の公式ブログにて公開されております。

https://blogs.technet.microsoft.com/jperablog/

内容からは、最新の.NET Framework 及びレジストリ修正による新元号の仮登録の方法や、合字利用

における UNICODE の対応についての記事はありますが、2018/10/31 現在、VB6.0 の対応についての

記載はありません。

Page 2: VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

All Rights Reserved.Copyright © 山口システム開発(株)2018

2

弊社で確認したところ、レジストリ修正による新元号の仮登録では、VB6.0 の和暦環境には影響はな

く、現在の公開情報とは別の対応が必要と思われました。

マイクロソフトの公式サポート期間では、VB6.0 は 2008/4/8 に延長サポートを終了していますので、

対応有無について不明です。

https://support.microsoft.com/ja-jp/lifecycle/search

2019/3/11 更新

経済産業省のページになりますが、以下 URL に「新元号対応について」日本マイクロソフト株式会社

の改元対応について掲載がありました。

http://www.meti.go.jp/press/2018/02/20190207002/20190207002-5.pdf

上記のとおり、掲載 PDF の 100 ページに、サポート期間内の OS であれば、VB6.0 のランタイム提供

がなされるとの記載があります。

Windows10 Pro バージョン 1809 OS ビルド 17763.348 でレジストリ登録の上、動作確認をおこなっ

たところ、Format の和暦変換で設定値が解釈されることがわかりました。

VB6.0 イミディエイトで確認。仮登録し

た元号「K」で表記され、改元対応がな

されていることがわかる。

Page 3: VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

All Rights Reserved.Copyright © 山口システム開発(株)2018

3

現時点で OS モジュール的には改元対応がなされており、レジストリ値の配布を待っている状況が確

認できました。

また、Windows7 Pro にて、次の OS 更新状況にて、VB6.0 の改元対応動作が確認できております。

上記のとおり、OS の更新モジュールにて対応されますので、通常はこちらのご利用をお勧めいたしま

す。

弊社製品の「VB6.0 改元対応 Format」につきましては、WiindowsXP,Vista などサポート期間外の OS

または、更新が行えない環境への対応にご利用ください。

また「VB6.0 改元対応 Format」をご利用いただけますと、OS の更新状況とは関係なく、(最新になっ

ていても、古い状況でも)改元対応がなされます。

システムの維持管理上、一定のメリットがあると思いますので、ご検討いただけばと思います。

以下より詳細をご説明いたします。

VB6.0 の和暦機能とVB6.0 改元対応Format の関係

(1)日付文字列編集

VB6.0 では日付の文字列化に Format()関数を使用します。

こちらの関数は、指定された情報と書式より、編集して文字列化を行います。

書式中の「g」和暦元号編集、「e」和暦年編集が、和暦対応機能になります。

書式 意味 書式 意味

g 和暦ローマ字表記先頭 1 文字 e 和暦年部分

gg 和暦漢字表記先頭 1 文字 ee 和暦年部分 2 桁表記

ggg 和暦漢字表記

現状(2018/10/31 現在)では、2019/5/1 を和暦変換した場合、H31 年の表記となりますが、VB6.0

改元対応 Format の使用にて、新元号での表記結果となります。

・標準動作 VB6.0 イミデイトウィンドウでの動作結果

? format(“2019/5/1”,”gee/mm/dd”)

H31/05/01

・VB6.0 改元対応 Format にて提供の BAS ファイルを VBP に追加後の動作

(新元号が「令和」英字表記「R」)

Page 4: VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

All Rights Reserved.Copyright © 山口システム開発(株)2018

4

西暦→和暦変換

? format(“2019/5/1”,”gee/mm/dd”)

R31/05/01

和暦→西暦変換

? format(“R01/5/1”,”yyyy/mm/dd”)

2019/05/01

(2)日付入力欄(入力コントロール)

VB6.0 では標準の日付入力コントロール機能はありません。

標準機能にて日付表記入力を行う場合、TextBox にて入力欄を定義し、当コントロールの LostFocus

イベントにて、Format()関数を使用した書式表記を行う方法が取られていました。

Format()関数を使用した方式の場合、「(1)」の対処で改元対応完了となります。

VB6.0 ではサードパーティー製の入力コントロールも多く使われており、メジャーな製品として、

グレープシティー製の IMText や Spread 製品がありました。

グレープシティー社の以下公式 URL に gceras.ini ファイルの設定にて対応可能との記載がありま

した。こちらを基に対応を実施ください。

https://dev.grapecity.co.jp/support/kb/detail.asp?id=36722

他のメーカーの場合、個別に問い合わせる必要がありますが、状況によっては、該当入力コントロ

ールを TextBox へ修正することで対処する方が現実的な場合があります。

状況に応じて対応ご検討ください。

Page 5: VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

All Rights Reserved.Copyright © 山口システム開発(株)2018

5

VB6.0 改元対応Format の構造

VB6.0 の Format()関数は多くの機能を有しており、全ての互換性を持つ機能を実装するにはかなりの

規模になります。

VB6.0 ヘルプより Format の日付書式部分を抜粋

そこで、VB6.0 改元対応 Format では、和暦部分のみを抜き出して別処理し、他の部分は標準機能の

Format()関数を利用することで、小規模且つ全機能の互換性を実現しています。

新元号が「改元」とした例を記載

Format( “2019/05/01”, “gggee/mm/dd”)

和暦表記の「gggee」部分を別処理

2019/05/01 → 「令和 01」

和暦以外の部分「/mm/dd」を標準機能で処理

2019/05/01 → 「/05/01」

上記結果を結合して「令和 01/05/01」としています。

実際には上記のように実数値が西暦だけでなく、和暦の場合もありますので、上記ほど単純ではあり

Page 6: VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

All Rights Reserved.Copyright © 山口システム開発(株)2018

6

ませんが、このような単純構造により、高い互換性を維持しておりますので、安心して導入いただける

と考えております。

VB6.0 改元対応Format の組み込み

VB6.0 改元対応 Format は、「EraFormat.bas」の1ファイルで実装しており、当該ファイルを VBP に

追加するのみで組込完了します。

EraFormat.bas は次の定義となっており、Format()関数を標準と同名で定義しています。

FileName: EraFormat.bas

Attribute VB_Name = "Era"

: :

Public Function Format(

Expression As Variant,

Optional ByVal dFormat As String = "",

Optional ByVal FirstDayOfWeek As VbDayOfWeek = vbSunday,

Optional ByVal FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1) As String

AAA.VBP へ EraFormat.bas を追加した例

: :

Module=Era; EraFormat.bas

: :

VB6.0 の動作系では、標準と同名の関数が定義された場合、定義された方が優先されます。

この機能を利用していわゆるオーバーライド(継承はできませんので、正確ではありませんが)のよ

うに使うことが可能です。

(新元号が「令和」英字表記「R」)

VBP に EraFormat.bas を追加する前の動作

A = Format(“2019/5/1”,”gee/mm/dd”) → A の値は H31/05/01

VBP に EraFormat.bas を追加後の動作

A = Format(“2019/5/1”,”gee/mm/dd”) → A の値は R01/05/01

同名の関数定義がなされた場合に、標準機能との使い分けは、次のようにオブジェクト名(赤字部分)

を記載することで可能となります。

標準機能の利用

VBA.Format(……)

Page 7: VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

All Rights Reserved.Copyright © 山口システム開発(株)2018

7

VB6.0 改元対応 Format の利用

Format(………) または Era.Format(………)

動作上、標準機能の利用が必須の場合はこちらの表記方法をご利用ください。

前述のとおり、EraFormat.bas の組み込みにて対応できますが、組み込み後に動作確認は必ず実施くだ

さい。

また、年度の考え方など、ユーザによっては個別解釈の可能性もあります。事前確認をお勧めいたし

ます。

(新元号が「令和」英字表記「R」)

2019/5/1 の場合、カレンダー上は K01 年度 5 月 1 日ですが、年度は 4 月を基準に考えますので、H31

年度中の 5 月、つまり H31 年度 5 月 1 日でも正しいと解釈可能です。

おそらく5月改定としたのは、2019 年度中は政府年度表記を旧元号表記とするためなのではないかと

考えております。

改元情報の設定

改元情報は、以下ファイルにて設定します。

FileName: ERA.ini

[ERA]

HeiseiNextSetting=20190501,令和,令,R

当ファイルは、次のパスを検索します。この範囲で任意の場所に配置ください。

優先順位(↑高) パス 備考

1 %APPDATA% C:\Users\ユーザ名\Appdata\Roaming

2 カレントフォルダ EXE 起動した際のカレントフォルダ

3 EXE ファイルパス プログラムが、

「C:\Program Files (x86)\Folder\AA.exe」の場合、

「C:\Program Files (x86)\Folder」

VB6.0 改元対応 Format は、上記設定ファイルから改元情報を取得するようになっております。

冒頭にも記載しましたが、政府発表が改元の1ヶ月前と少々タイトなスケジュールとなっているため、

改正対応版のプログラム準備後に、設定ファイルの配布にて改元に対応できる形式が現実的と考え、当

構成としておりました。

現在(2019/4/2)は政府発表が行われましたので、VB6.0 改元対応 Format 内部に、新元号情報を組み

込み済です。

システムを構成する他のモジュールとの同期を取る場合に ERA.ini はお使いください。

以下は、政府発表前の状況でのスケジュール感になります。

Page 8: VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

All Rights Reserved.Copyright © 山口システム開発(株)2018

8

2019/3/末まで VB6.0 改元対応 Format 組み込み版を作成

ユーザ事前提供分はこちらのバージョンを提供

EXE ファイルの提供は容量がかさむため順次準備ができたもの

を提供

2019/4~2019/5/1 改元設定版の ERA.ini をユーザ配布

また、今回の改元の次の改正への対応ですが、上記設定に「;」セパレータに次回設定を追加可能です。

[ERA]

HeiseiNextSetting=20190501,令和,令,R; 20300101,次回,次,Z

次回に限らず追記可能ですが、今回の新元号は数十年続くと考えております。

その間に OS 環境の変化などにも影響を受けますので、次回改正にも対応できることに安心せず、早

い時期での.NET Framework への移行をお勧めいたします。

サンプルプログラム

VB6.0 改元対応 Format の詳細動作につきましては、以下 URL よりサンプルプログラムをダウンロー

ド出来ますので、そちらでご確認ください。

http://ysk-inc.co.jp/eraformat.html

Page 9: VB6.0 改元対応 Format のご紹介ysk-inc.co.jp/pdf/pdf/eraformat.pdfVB6.0 改元対応Format のご紹介 はじめに 2019/5/1 より和暦が改正される件は、各種報道がなされており、ご存知とおもいます。

All Rights Reserved.Copyright © 山口システム開発(株)2018

9

サンプルプログラムは Zip 形式です、展開後に ERAFormatSample.exe を実行いただければ次のよう

に画面表示されます。

赤枠部分の値を変更し、右枠に表示される値にて動作を把握ください。

製品ライセンス

VB6.0 改元対応 Format は VB のソース提供になります。

各種の制限が掛りますと、対応困難な案件も考えられますが、弊社想定外でのご利用も考えられます

ので、案件毎に別途ご相談とさせてください。

基本的には商用私用にかかわらず、自由に組み込んでご利用いただけるように調整いたします。

但し、VB6.0 改元対応 Format 自体を配布及び再販は控えて頂きたいと考えております。

終わりに

弊社では、長年人事給与システムや財務会計システムなどを製作しており、ノウハウを蓄積しており

ます。

今回、完成製品だけでなく、部品提供可能なものについても販売を開始しました。

これからも皆様のお役に立てるサービスを提供して参りますので、よろしくお願いいたします。

山口システム開発株式会社

技術享受事業部一同