2026/01/01

2026の抱負

 あけましておめでとうございます。今年もよろしくお願いします。(年賀状代わり)

この歳になると、1年はあっという間に過ぎ去ってしまうので、今年の抱負を立てても、実現する間に来年になってしまうかもしれませんが...。

VB De FilMtnをtwinBASICに移植したいと思っています。

1年間健康で、心穏やかに過ごしたいです。

3つ目は...。思いつきません。なので2つにしておきます。(^^ゞ

ARMな ノートパソコンを買ったので、VB De FilMtnのバージョン情報のダイアログのOSの項目に、ARM判定ロジックを追加してみました。

今時のコーディングって、Copilotさんにやりたいことを聞けば、サンプルコードまでも出力してくれます。

でも、デスクトップ機のGEEKOM A8のWindows 11 Pro OS内のHyper-V上の、Winodws XPでVisual Basic 6のソースを弄るのはもう終わりにしようと思います。

twinBASICで趣味のプログラムが書ければ、すごくシンプルにプログラミング生活が送れると思います。
 

 

2025/12/31

twinBASIC IDE BETA 949でクラスのデモ8が動作

 

Windows APIでツールバーを表示するサンプルプログラムである「クラスのデモ その8」も普通に動作しています。

イメージリストのクラス(イメージリストAPIのラッパークラス)と紐づけてツールバーのクラス(ツールバーAPIのラッパークラス)で表示しています。

元々は、次期「プチプチ for Windows」のために試作していたコードのような記憶があります。がほとんど覚えていません。

 同梱されていたドキュメントは以下のょうな感じです。

 CLSDEMO8.LZH クラスのデモ(その8)
===========================================================================
【ソ フ ト名】  クラスのデモ(その8)
【登  録  名】 CLSDEMO8.LZH
【バイト  数】  Byte
【検索  キー】 1:$WIN32 2:#SRC 3:へろぱ 4:NIIYAMA
【著作権  者】 新山(へろぱ)    SGV00153
【対応  機種】 Windows95/98/NT4.00 later
【動作  確認】 SONY VAIO PCG-723(Win98 + IE5)
                DELL DIMENSION XPS-D300(Win98 + IE5)
                DELL DIMENSION XPS-D300(NT4 SP4 + IE5)
                DELL DIMENSION XPS-D233(Win95 + IE4)
【開発  言語】 Visual Basic 6.0J(Pro)
【掲  載  日】 1999/04/14
【作成  方法】 UnLHA32.DLLを使用するツールにて解凍を行う。
【ソフトウェア種別】 フリーソース
【転載  条件】  転載を希望される方は、事前に私宛にメールをください。
===========================================================================
【ソフト紹介】
 ツールバーをピクチャーボックスコントロール上に作成するクラスです。
 ツールバーをAPIで実装するサンプルはいろんな所で発表されていますが、
そういったサンプルは結構実用にならないので、自分で使うつもりになって実
装してみました。
 よって、そのままサンプルのモジュールをプロジェクトに組み込み、わずか
なコードの追加でツールバーが使えるようになります。
 しかし、自分で使うつもりになってコーディングした欠点により、自分の使
わないようなところが未実装になっています。(^_^;)
 まぁ、そういった所はおいおい実装する事にして、まずは公開する事が先決
かと...。(というか、ツールバーはもう飽きた。)
 ツールバーコントロールに付き物のツールチップヘルプは当然実装していま
す。イメージリストコントロールは、後々いろんな所で使いまわしたいので、
別モジュールとして実装しています。

【使用方法】
 サンプルコードを見てください。

【免責】
 コードを自由に使う事と引き換えに、新山(へろぱ)は一切の責任を負わない
事とします。

【バグとか】
 感想、要望、バグ情報等ございましたら、メールをください。

 関係無いですが、http://plaza5.mbn.or.jp/~heropa/ もよろしく。(^_^;)

【履歴】
    1998/09/13  最初に公開されたバージョン
===========================================================================

ダウンロードファイル名を『CLSDEMO8.LZH』としてください。

※ホームページのURLは、現在は存在していません。

2025の振り返り

 まいど~!

今年は年男であり、自社規定の定年退職を経験しました。弊社は、今まで誰一人定年まで勤続した人がいなく、言い方を変えれば、若い会社です。なのに、まさかの定年まで勤続!

で、その後は働かず悠々自適していたわけではなく、そのまま雇用を維持して以前と全く同じく、「残業のない夢のような世界」で、主にJavaな開発に従事しています。

定年が延長されると、給料が安くなったりすることを、先輩や別会社の同僚から聞いたりしますが、私の場合はそんなことはなく、かえって手取り増えてるんじゃね?!スーパーマリオのボーナスステージみたいじゃね?!と思っていました。

でも、定期賞与が無くなった代わりに、 月々の手取りが増えただけでした...。

まぁ、いいっか! 

後は、やはり、AIの発達を実感できた年だったと思います。

AIに、「Microsoft 以外で、Visual Basic 6の後継となるプロジェクト って存在しないの?」と聞いてみたところ、twinBASICを紹介されたのは、素晴らしい出会いでした。

Googleさんで検索する時って、だいたい日本語のサイトから検索していくんだけど、AIさんは言語に関係なく探してくれるので、調べものについては、AI検索さんは素晴らしい仕事をしてくれます。もちろん裏を取るのは必須ですけど。

4月半ばには、保護犬を引き取って買うことにしました。休日には、散歩を一緒にするだけですけど (平日は妻が散歩しています)、「健康の維持」と「加齢の保留」には役立っているような気がしています。

 勤務先でも、自社のイベントでも、若い人たちとの交流で、『若いな~、うちの長男よりも若いし~』思うことが多くなりました。雑談をしていると、Visual Basic(VBAも含む)やJavaやWindowsの最初期の時代の話とか、一切知らない世代なんですよね。「Javaの最初のころの開発では、IDEは無く、テキストエディターでコードを書いていたよ。」と言うと、ビックリされます。「デバッグとかどうしていたんですか?」とか。

通勤といえば、JR松山駅が新駅となり、ダイヤが変更となり、列車が1両だけになったり、旧駅の取り壊し中なので、通勤に余分に歩かされるとか、相変わらず大学生・高校生・旅行者のマナーが悪いとか、いろいろ不満があります。不満しかありません。 そのため、極早朝の空いている時間の電車で通勤をすることにしています。学生さえほとんど乗っていないから、空いているし快適。その後駅の待合室で読書をして、1時間くらい時間を潰してから通勤先へ歩くことにしています。

通勤が嫌で嫌で我慢できなくなった時が、退職時なのかな~と漠然と思っています。 

 

さて、来年は厄年らしいですが、あまり気にせず優雅に生活できたらと思っています。 

2025/12/21

twinBASIC BETA 941 で「クラスのデモ04」が動く

 別に、このバージョンになったからというわけでなく、今日時点の最新のバージョンでたまたま昔のプロジェクトを読み込ませてみたってだけです。


 すっかり何のプロジェクトか覚えていませんが、実行させたダイアログを見ると、DateTimePicker関連APIを呼び出すクラスの実装デモのようです。

今見ると、ユーザーコントロールで実装したほうが良いですよね。確か、後のVB De FilMtnの「ファイルの日付時刻の変更」ダイアログでは、そうしていたような記憶があります。

「値を設定」ボタンを押下


 うん、ちゃんと日付が変わるね。前世紀の日付じゃん!

この日付、何だろう?

ソースを見てみる。


 結婚記念日...。

忘れてた。(^^ゞ

 

 

 

2025/11/22

twinBASIC IDE BETA 905で、懐かしの「クラスのデモ」が無改造で動作

 

クラスのデモ(その1)

 大昔、Visual Basicマガジンという雑誌がありまして、創刊号から愛読していまして、パソコン通信上での友人が「VBマガジンに掲載されれば、献本システムにより、ただで雑誌がもらえるよ。」と唆され、VBマガジンに掲載されるようなサンプルプログラムを、というヨコシマな目的のために作成された、Visual Basic 6.0のプログラムです。

OCXで実現されていたコモンダイアログは、結構ファイルサイズが大きく、回線が細かったパソコン通信時代には、ソフトウェアの配布でネックになりがちでした。配布する側も、ダウンロードする側もね。

Windows APIをVisual Basicから直接呼ぶことができるため、理屈の上ではOCXの代わりにVBのコーディングだけでコモンダイアログは呼べます。

しかし、思い立ってもなかなか自分で実装するには面倒なのか、当時はまだ誰もこういった便利ユーティリティークラスは公開されていませんでした。

当時のソフトウェア添付のドキュメント

 CLSDEMO1.LZH クラスのデモ(その1)
===========================================================================
【ソ フ ト名】  クラスのデモ(その1)
【登  録  名】 CLSDEMO1.LZH
【バイト  数】  Byte
【検索  キー】 1:$WIN32 2:#UTY 3:へろぱ 4:NIIYAMA
【著作権  者】 新山(へろぱ)    SGV00153
【対応  機種】 Windows9x/Me/NT4.0/2000 later
【動作  確認】 自作AT互換機(Win 2000 SP3他)
【開発  言語】 Visual Basic 6.0J(Pro)
【掲  載  日】 2003/04/13
【作成  方法】 LHA にて解凍を行う。
【ソフトウェア種別】 フリーソース
【転載  条件】  転載を希望される方は、事前に私宛にメールをください。
===========================================================================
【ソフト紹介】
 VB4からの新機能の一つにクラスという機能があります。この機能は本来
OLEサーバーなどを作る時に利用したりするものだと思いますが、簡単に再
利用できるモジュールとしての利用価値も結構あると思います。

 コモンダイアログのクラス
    「ファイルを開く」「ファイルの保存」「フォントの選択」「色の選択」
    がVB5のコモンダイアログOCXとほぼ互換のプロパティ・メソッドで
    使えます。再配布などでのディスク容量の問題が一挙に解決すると思いま
    す。

 タブストリップのクラス
    コモンコントロールのタブストリップコントロールを直接APIで実現する
    クラスです。

 プログレスバーのクラス
    コモンコントロールのプログレスバーコントロールと同様の外見をピクチ
    ャーボックスコントロールで実現するクラスです。

 今後、ソース付きの私のプログラム内でタイムスタンプの新しい同名のファイル
があれば、それは更新された新しいモジュールです。参考までに。(^_^;)

 コードについて、バグやもっといい方法があると思ったら指摘してもらえると
勉強になるのですが...。

 感想、要望、バグ情報等ございましたら、メールをください。

 関係無いですが、http://plaza5.mbn.or.jp/~heropa/ もよろしく。(^_^;)

【履歴】
    1997/03/21  最初に公開されたバージョン
    1998/05/10  コモンコントロールのクラスを修正。VB5専用コードに変更。
    1998/06/19  コモンコントロールのクラスのバグ修正。
    1998/09/24  色の選択ダイアログのコードを修正。
    1999/02/26  タブストリップのクラスをAPIで実装しなおした。
    2000/02/09  タブストリップで、コンパイルオプションDebugMode = -1の時は
                サブクラス化しないようにした。これで開発時に大分楽になるは
                ず。
    2003/04/13  cdlOFNNoReadOnlyReturnをFlagsプロパティにセットすると落ち
                る原因を教えていただいたので修正した。木村さんありがとうご
                ざいます。
===========================================================================

ダウンロードファイル名を『CLSDEMO1.LZH』としてください。

あ、ホームページのURLとか、既に存在していません。

そんなわけで、ソースをtwinBASICで読み込んでみました。22年前のプログラムソースが手元にあったもので。(^^ゞ

普通にエラーもなくコンパイルできてます。冒頭のウィンドウは、twinBASICでコンパイルしたものです。

動作確認をざっくりしましたが、WinHelpの呼び出し以外はちゃんと動作します。(WinHelpは、さすがにWindows 11では...。)

プログラムの性質上、Windows APIをバリバリ呼んでいますが、twinBASICでちゃんと解釈されているようです。 

素晴らしい。 

まぁ、64ビットコンパイルするためには、ポインタのところとかが今のままでは駄目だろうけど。 

これなら、VB De FilMtnでもコンパイルできるのか?

なんか、怖くてできない。 (エラーがバリバリ出て、コンパイルできないと悲しいじゃん?)

2025/10/25

twinBASIC

 

これ、凄いね!

Microsoft Visual Basic 6.0の後、Microsoftは、.net上で動作するVisual Basicに移行しました。

憶測ですが、Javaの件でSun Microsystemsとの裁判で負け、オルタナティブJavaとしてのC#で、MicrosoftがJavaでやりたかったことをするために、Visual Basicは巻き込まれた感じです。

Visual Basic 6.0の開発者は、次のVisual Basicとして、.net Framework上で動くVisual Basic .netへの移行をせざるを得ませんでした。Visual Basic .netの言語仕様は、Visual Basic 6.0のものとはずいぶん異なり、仕様の進化的には正しいのだろうと思いながらも、既存の資産を全く生かせない仕様変更に途方にくれました。

.net Frameworkは、ライバル「Javaのバージョンと仕様」と 争うように、どんどんバージョンアップし、C#を旗艦言語とし、Visual Basicは置いてきぼり状態。

OSも、いつの間にか32ビット版OSが無くなり、Visual Basic 6.0開発環境をインストールできるOSは、仮想環境のみとなりました。

飼っていたVisual Basic 6.0の開発環境がインストールされている仮想OSのサーバーであるVirtualBoxとHyper-Vの相性は最悪で、Windows 11ではVisual Basic 6.0のソースを弄ることが困難になっています。 

不思議なことに、ExcelなどのOfficeに内蔵されるVisual Basic for Applications(VBA)の言語仕様は、Visual Basic 6.0とほとんど変わることもなく、現時点でのVBAのバージョンは、7.1でx64なAPIをコールできるように仕様の拡張がされており、Microsoftは放置しているわけではないが、積極的に弄ることもしない、というスタンスに見えます。

Googleさんの検索で、AI検索が導入され、自然言語での問い合わせに答えてくれるようになったので、「Visual Basic 6.0のクラシックBasicの後継となりそうなものって存在する?」と聞いてみたところ、twinBASICを紹介された次第です。

これこそ、Visual Basic 6.0の開発者が、Microsoftにやってほしかった次期Visual Basicだったのでは!?と思わせる出来です。

もう、これがVisual Basicの直系となる開発ツールで良いと思う。

現在はベータバージョンで完成間際というところのようですが、現時点でもなかなかの出来です。もしかして、VB De FilMtnとか移植できそう?と夢が見れそうです。 

以下は、Google検索さんがまとめたtwinBASICの良いところです。

 

 twinBASICの素晴らしい点は、
Visual Basic 6.0(VB6)やVBAとの互換性を保ちながら、最新の言語機能と開発環境を提供していることです。これにより、既存の資産を活かしつつ、最新の開発手法や技術を取り入れることができます。 
以下に、twinBASICの主な特長をまとめます。
1. VB6/VBAとの高い互換性 

    コードの完全移植: 既存のVB6やVBAのプロジェクトをtwinBASICにインポートし、ほとんど修正なしで実行できます。
    バグ修正と再現: 古いVB6/VBAコンパイラーにあった既知のバグや、特殊な挙動が忠実に再現されつつ修正されているため、安心して移行できます。 

2. 最新の言語機能 

    64ビットコンパイル: 64ビットネイティブコードのコンパイルに対応しているため、VB6では実現できなかった64ビットアプリケーションを作成できます。
    ジェネリクス: 再利用可能で型安全なコードを書くためのジェネリクスをサポートしています。
    オーバーロード: メソッドのオーバーロードに対応しており、より柔軟なプログラミングが可能です。
    継承: クラスの継承をサポートし、オブジェクト指向の機能を強化しています。
    Unicodeの完全サポート: 開発環境とコントロールの両方で、Unicodeを完全にサポートします。
    マルチスレッド: 低レベルのAPI呼び出しではありますが、マルチスレッドをサポートしています。 

3. 現代的な開発環境 

    統合開発環境(IDE): 最新のモダンな専用IDEが提供されています。
    Monacoベースのコードエディター: VS Codeでも使われているMonacoエディターが採用されており、高機能なコード編集が可能です。
    テーマ: ダークテーマとライトテーマの両方に対応しています。
    リアルタイムのエラー診断: プロジェクト全体のエラーをリアルタイムに診断し、表示する機能があります。 

4. 実行環境の改善 

    ランタイム不要なEXE: 独立した実行ファイル(EXE)やDLLを生成でき、VB6のように特定のランタイムを必要としません。
    パフォーマンス向上: コンパイルプロセスの高速化や、最適化されたコンパイルオプション(Professional Edition)により、生成されるアプリケーションのパフォーマンスが向上します。 

5. その他のメリット

    ロイヤリティフリー: twinBASICで作成した商用製品は、ロイヤリティフリーで販売できます。
    活発な開発: 公開ベータ版のリリース以降、活発に機能追加やバグ修正が行われています。
    コミュニティの存在: DiscordやGitHubを通じて、開発者同士のコミュニティが形成されています。 

まとめると、twinBASICは過去の資産を保護しつつ、現代的な機能と開発手法を取り入れたいVB6/VBA開発者にとって、非常に魅力的な選択肢となります。時代遅れになりつつあったBASIC言語を、最新のプラットフォームで活用できる可能性を大きく広げます。

2025/05/03

家族が増えました

 

去年、12年飼っていた柴犬が亡くなって、もう犬はいいかな...と思っていましたが、妻が『さみしいから、犬を飼いたい』と言ってきました。

何度もペットショップを巡って、柴犬を探していましたが、人気の犬種だけにお高い!

それに、ピンとくる子がいない...。

そんな中、知り合いの人から「保護犬だったら買わなくても飼えるよ。」と言われ、県の保護センターにも行ってきました。

しかし、そこでもピンとくる子は居なくて。

 別の人から、「保護センターは、県が運営しているものと、松山市が運営しているものがあるよ。」と聞き、松山市の保護センターへ行ってきました。

そこで、この犬と出会い、「良いな、かわいいな」と思い、引き取ることに。

それが、4月15日火曜日、平日でしたが有給休暇で引き取ってきました。

命名:すもも

推定6~7歳の女の子で、雑種だそうです。

パッと見、柴犬っぽい格好ですが、柴犬よりも1.5倍位大きいです。

カリカリ餌は2倍食べます。食いしん坊です。デブ犬にならないように気を付けなければなりません。

前の子と同様、お散歩大好きで力が強いのでグイグイ引っ張りながら歩いていきます。結構、ムキムキです。

まだうちに来て間がないため、少し遠慮があるのかまだ距離が遠いです。

これから妻と一緒に、長く付き合っていきたいです。


2024/12/21

師走ですね、近況報告

前回の近況報告から、数年経っていますね。(^^ゞ
その間には、色んなことがあり、ブログを書く気がしなかったのが理由です。 

職場

 2019年の1月から居るという残業のない世界に、まだ居ます。残業のない世界とはいえ、やむなく残業したのはこの5年間で2日のみ!

家族が減りました

親父が脳梗塞の後遺症で、次第に認知症が進み、耳がほとんど聞こえない、肝機能不全で透析患者という状況で、介護的に非常に大変になりました。
介護疲れで、不注意により妻が大やけどで入院。
やむなく、介護施設にショートステイという選択で、親父を預かってもらうことに。
しかし、認知症&難聴&思い込みという組み合わせで介護施設でトラブルの連続、そのたびに私が呼び出され、何のために預かってもらっているのか?そもそも預かっているってことになっているのか?という面倒くささ。
介護施設のアドバイスにより、認知症の治療ということで、病院に入院となりました。
コロナの真っただ中だったので、ほとんど面会もできず、透析の別の病院のための通院も、介護タクシーをお願いしていました。
妻の入院の差し入れとかお見舞いとかもあるし、飼い猫や飼い犬の世話もあり、今思い出しても大変でしたよ~!
妻が退院する直前に、飼い猫が体調を崩して亡くなりました。「どうした~?体調悪いのか?」という間に。後始末を一人でやりました。
妻がやっと退院するものの、半年くらい通院があり、そのたびに有給休暇を使用して送り迎えをしました。割とストックがあった有給休暇は、この時点で無くなりました。
通勤の途中で、親父が入院している病院から携帯電話に、「朝呼吸が止まっているのを発見して、現在蘇生治療中なので急いで病院に来てください!」と電話あり。
結局、その時点で亡くなっていまして、葬儀場にてお通夜、お葬式となりました。
翌年は、妻側のお義父さんも亡くなり、そちらの葬儀にも参列。(同居はしていませんでした)
そして、今年の夏前に、1年の闘病生活の末に飼い犬も亡くなってしまいました。皮膚癌でした。
つまり、飼い猫、親父、お義父さん、飼い犬と家族が減ったわけです。

とても、ブログを書く気持ちの余裕はありませんでした。
 
こんなイベント山盛りでしたが、最近になって、そろそろ「あるべき自分中心の生活」に戻っても良いのではないかという気持ちになってきました。 
現在は妻と2人暮らしです。