2017年11月23日木曜日

”それっ、早く言ってよ~”とCMでも言ってたけど、顧客管理のようなカード型デー タベースの需要は、まだまだあるぜ - The Card (アスキーサムシンググッド社・ そのほか)

これがTheCardの実例だって

今宵は、一つ、もしパソコンの世界に縄文時代があったとして振り返ってみます。
昔々、自分は、NEC製のPC-9801シリーズのパソコンを仕事で使っていました。

もう三十年も前の話で、ウインドウズも未だ先の話で、マルチタスクもありません。
起動させるシステムが、MS-DOSと呼ばれており、フロッピイディスクを使いました。
ガシャガシャとデータを読ませていた時代ですが、フロッピーすらなくなってしまった。
フロッピーで一枚、たった1.44MBのデータ量を読みのに、一分以上掛かります。

しかも、他のプログラムを動かしたかったら、フロッピーを差し替えねばなりません。
まあ、こんな非効率なパソコンでも、OA化で事務効率が向上するというのです。

思い出すのは、ワープロは一太郎、表計算はロータス1-2-3が定番の時代。
エクセルの前身のMultiplanなるソフトもありましたが、ロータスが圧倒的でした。

とにかく、CPUが非力で、画像出力もグラフを出せるのがせいぜいなところです。
動画を見る夢のまた夢で、十年も二十年も先の話だったのを思い出しました。

つまり、パソコンは、もっぱらテキストデータの管理が主力だった時代の事務機。
ラップトップPCもないし、オフィスの隅っこに置いて、みんなで共用していましたな。

左から、8-5-3.5インチの各FDサイズ

そんな時代、”The CARD”なるカード型データベースソフトが、発売されました。
表計算ソフトでは、各行の項目に移動しながら入力しますが、これは違います。

カード上の画面に入力に必要なセルの項目が配置されており、終われば登録。
パソコン内部のメモリーにデータが蓄積されて、必要に応じて作表もできました。

登録した情報は、紙のカードをめくるように、一件一件を移動させて見られます。
まあ、台帳の管理などに便利と分かって、会社で購入してもらったのが懐かしい。

それから、販売店に頼んで、アスキーから講師を呼んで講習会まで開きました。
女性の営業部長で、苗字が”弦”と書いてあったので、珍しく未だ覚えています。

それで、社内で三回に分けて三十人くらい参加してくれましたが、盛況でした。
このソフトを何に使ったかと言うと、試験成績の登録に役立ったと思いますな。

そんなソフトも、ウインドウズ版のVer8.0を最後に消えてしまったのが実に残念。
愛用者だったし、このソフトのマニュアル・CDまで捨てずに保管しておるのです。

愛好家達の掲示板サイト

未だに使い続けている人も多くて、そういった愛用者のサイトまで見つけました。
そこでは、この十一月に、最終版のCDをメルカリに出品と掲示板にありますな。

カード型は、表のように全体を見渡す作業が必要でない時に、本当に便利。
だから、件数が溜まって肥大したデータは、件別にカード化して見たくなります。

それで、エクセルの隠れ機能として、カード閲覧は意外に知られておりません。
見出しの範囲を選択して、ショートカットキーで、Alt+A+D+Oと押します。

すると、カードが現れまして、件別に移動できたり新しいデータの登録も可能。
ただ、列を飛び飛びで選択したカード表示は出来ないので、ならばマクロです。

やぱり、エクセルを使いこなすのだったら、VBAを少しぐらいは覚えましょうか。
なので、参考までサンプルコードをこさえてみたので、お使いくださるとうれしい。

非常にシンプルな構文ですから、現在使用中の表に加えるのも楽な話です。
というわけで、懐かしいカード型データベースを思い出して、一気に書きました。

というのも、インドの合弁会社から送られてくる議事録が、エクセルの表形式で作られており、会議が連続すると、とふんどしみたいにだらだらで内容がぶら下がって来る始末で、何が書いてあるのか、さっぱり分からなくなるし、それを改善するためにユーザーフォームをぶち込んでみた分けでして、そんなことからカード型データベースの記憶が蘇ってしまい、つい投稿してしまったということなのでした。


<VBAサンプルコード」>
Alt+D+Oキー呼び出し結果
VBAによるユーザーフォーム

①ユーザーフォーム1(書式・表示の設定)

Dim i As Long
Dim j As Long
Option Explicit
'変数宣言
--------------------------------------------------
Private Sub CommandButton1_Click()

'記録したデータ(行)を再登録させない(変数 i, j の利用)
If j > 1 And j < i Then Exit Sub

ActiveSheet.Cells(i, 1).Value = UserForm1.TextBox1.Value
ActiveSheet.Cells(i, 2).Value = UserForm1.TextBox2.Value
ActiveSheet.Cells(i, 3).Value = UserForm1.TextBox3.Value

'登録後、各ボックスをクリア
UserForm1.TextBox1.Value = ""
UserForm1.TextBox2.Value = ""
UserForm1.TextBox3.Value = ""

End Sub
---------------------------------------------------
Private Sub SpinButton1_Change()

'登録データの最下行より一つ下の行番号を取得
i = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
      
'スピンボタンで移動させる行番号の最大・最小値の設定
    UserForm1.SpinButton1.Min = 2
    UserForm1.SpinButton1.Max = i

'スピンボタンの押し下げに対応した、行列のデータをボックスに表示
UserForm1.TextBox1.Value = ActiveSheet.Cells(SpinButton1.Value, 1)
UserForm1.TextBox2.Value = ActiveSheet.Cells(SpinButton1.Value, 2)
UserForm1.TextBox3.Value = ActiveSheet.Cells(SpinButton1.Value, 3)

'スピンボタンの値を変数で登録
j = SpinButton1.Value

End Sub
---------------------------------------------------
Private Sub UserForm_Initialize()

'テキストボックスの初期値を設定
'ブランクが良いなら、""
UserForm1.TextBox1.Value = "Item A"
UserForm1.TextBox2.Value = "Item B"
UserForm1.TextBox3.Value = "Item C"

End Sub
---------------------------------------------------

②Module1(クリックボタンでユーザーフォームの表示)

Sub Button1_Click()

Load UserForm1
UserForm1.Show vbModeless

End Sub

※日本語のエクセルでは、”ボタン1_Click”と出ますが書き換えています。
理由は、インド人へサンプルコードを渡す時に、日本語ではエラーが出るため。



いいねと思ったら、二つポチっとね!



0 件のコメント:

コメントを投稿