関数を作ってく

要件定義をつめていってユーザーフォームの暫定版ができた!

 

①送付先の選定、送付先によって送料が自己負担か客先負担か分かれる

②商品の選定、送付相手によって仕切率が変動する

③送付先の選定と商品の選定が行われると納品明細、請求金額が自動で計算される

 

そんで必要な情報をシートをテーブルに見立てて

納品倉庫、顧客、商品のテーブルを作成した!

 

こっからユーザーフォームに具体的な関数をつけていこ~

まずは検索用の関数から!

↓みたいにワークシート上で検索値を探し、その行を返す関数を標準モジュールに入れてフォームから呼び出すのが好き

検索結果が複数になるかもしれない検索なら配列で返し、結果がひとつと分かってる場合はLong型で行番号を返す

ちゃんとしたものだと関数名も他人にわかりやすいようにしなくちゃなんだけど

自分用なのでローマ字表記の日本語で作っちゃう(後から見直したときわからんから)

 

フォームから呼び出すときは

配列で返ってきた行番号を呼び出してワークシートからデータを拾ってくるようにする

(↑の場合はリストボックスに拾ってきたデータを表示させてる)

 

ただワークシートごとに拾う関数だからシートを超えてデータ拾ってくるのは無理なんだな~

エクセル→Sqliteでつなげられればデータベースから拾ってこれて楽なのに~!

要件定義モドキ

データの正規化と並行して要件定義モドキに手を付けてみる

ちゃんとしたIT会社だとちゃんと手順踏んでやってくんだろうな~って感じなんだけど

小さい会社なので作るのもの自分だけ、使うのも自分だけ、残業代がつく業務じゃないのでざっっくり

*ただし最初に要件定義をしっかり作っておかないとだんだん迷走してくる

 

私はVBAのユーザーフォーム使いながら見ながら考えていくのが楽

 

やりたい業務は「商品を倉庫に入れるかユーザーに送るかの選択」をする

ついでに送る相手がどれくらい商品購入実績があるかも知りたい

ついでに掛け率や、ユーザーに送るなら仲介する商人への納品書の要不要も知りたい

 

ので、ユーザーフォームにボタンやフレームやコンボボックスを適当に置いて

今あるデータで出せること、組み合わせてほしい情報を出してく

ブレーンストーミングみたいな感じなので違うな~って思ったらサクッと消したり増やしたり

ある程度固まったらこれをもとにテーブルやテーブル代わりのシートを整えたり

ユーザーフォームのオブジェクト名を整えたりしていく

オブジェクト名はTextBox1から番号だけ変えて振っていくと

for nm = 1 to 10

Controls(”TextBox" & nm).text = ""

next 

みたいな感じで一気に初期化できたりするのでユーザーフォームでいろいろ動かすときに楽~

 

あとデータを引っ張ってくテーブルごとにフレームを決めて

オプションボタンで出したいフレームを見せたり

不要なフレームを見せなくしたりするのも好き

 

ただこういうギミックに凝りだすとそっちにハマっちゃってメインを作るのが進まない…

やーめた

python諦めた

いや、やる気はあるんだけどベテランさんが案外早くいなくなる予定になり

のんびりpython勉強する時間がなくなった~

(いつかやる←たぶんやらない)

 

なのでライセンス買ってエクセル買い切りDL

中古Surface3万+ライセンス代2万…なかなか痛い出費だよぅ

 

とりあえずデータの正規化から

↓みたいなぐっちゃぐちゃの納品内訳をデータベースっぽくする

 

B列の表記の表記の揺れは検索と置き換えで変更して

 

くっついてる内訳データは、全角スペースを空けて見やすくして

(これが地道な作業で面倒)



 

マクロで全角スペースの区切りごとにセルを変えるのを組んで

 

ざっくり~とデータベースっぽくなった~

*これが1万行くらいある

 

こっからテーブルをいくつか作ってクエリの結果をユーザーフォームで呼び出していくようにする予定

サービス残業で作ってくからあんまり手間かけたくないなぁ

 

とりあえずデータの手がかりは手に入れた

販管システムから販売ログ落とせた!

これで手書き伝票を一個一個追わなくてもデータベース作れる〜♪


f:id:poko-wanko:20240609215523j:image

まぁ正規化しなきゃなんだけど…………

エクセルならマクロざざっと作ってサクサクできるけど

事務所の古ーーーいパソコンだとマクロを動かすどころかファイルを開くだけでも時間がかかるので

私用のパソコンでやるしかない

(大企業なら情シス激おこ案件なので零細でよかった)

 

私用のSurfaceWPS OfficeしかないのでPythonでマクロっぽいことするしかない

ここしばらくVBAしか組んでなかったからもう一度Pythonお勉強しなきゃ………

PythonにOpenPyXLいれるついでに

GUIで操作できるようにしたいのでTkEasyGUIも入れてみる(tkinterでもいいんだろうけどブログ見たらなんか簡単そうだから)

《参考↓》

https://note.com/kujirahand/n/n33a2df3aa3e5?sub_rt=share_b

 

エクセルひとつあれば自動化もGUIフォームもさっくり作れるんだな〜

一人ひとりに動きの速いパソコン貸してくれてエクセル入れてくれる大企業はありがたかったな〜

 

ベテラン事務員さんもいつまでいてくれるか不明だから

早めに自作システム作っていかなきゃな〜

 

手書き伝票つらい

いままでの仕事が社内も社外もデータ上ですべてのやり取りが完了してたから

いまの仕事ほぼすべて複写式伝票手書きオンリーなのツラい

 

ウン十年ぶりに筆記用具を使って文字を書く作業をしてるから利き手が筋肉痛になってきた

なんとかならんかな〜て探してたら

「複写式伝票を印刷する」ためのプリンターや

レーザープリンターで「印刷するため」の用紙が色々あってびっくりした

https://www.monotaro.com/s/q-%E4%BC%9D%E7%A5%A8%E5%8D%B0%E5%AD%97%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BF%E3%83%BC/

 

できるなら受発注も経理業務も全部電子上で済ませたいけど

せめてこういうの取り入れたいよな〜

もう手書き伝票に手計算の世界は嫌だ〜~~~~

お辞儀はんこ

「仕事で書類に押印する」ことを長らくやっていなかった

前職は誰がその書類を出したかは提出データのログ見れば良かったし

脱ハンコが進んで以前は確認の意味で押印していた箇所は全てサインに置き換わっていた

会社間の印は電子署名で済んでいたし

 

十年前に別の仕事していた時は押印文化はまだ残ってたけど

忙しかったから「ハンコが押しであればいい」のが社内ルールで

押印の方向など適当で良かった

 

だがしかし

零細企業の現職、

「ハンコはお辞儀させて押せ」文化がまだ残っている

 

う、嘘やろ〜〜〜〜〜〜

 

「ハンコがお辞儀しているのが礼儀」と毎回怒られるんだけど

この人たちが電子署名という無機質な技術に触れたらどうなるんだろ………

マニュアルデータ化は進行中

データベース作成業務はまだまだ着手できてないけど

ベテラン事務員さんの頭の中にだけ存在していた業務マニュアルを

データ上に打ち込む作業は進行中

 

とりあえずMicrosoftに無料アカウント作って

One NoteダウンロードしてMicrosoft365でデータ消えないようにバックアップしながらマニュアル作成中

One Note楽なんだよね

 

前職の派遣のときにめちゃめちゃ活用していて

部署ごとにTeamsのチャネルがあったので

自分の部署のチャネルにOne Note入れて部署内なら誰でも編集可&閲覧可にして共有してた

TeamsにCoPilot入れて業務内容をチャットボット形式で検索できるようにもしてみた

 

けども基本は「チャットボットに聞くより人間に聞いたほうが早い!」になるからほぼ使われなかったな〜

(質問の応答が面倒だったからチャットボット作ったのにな…)

あとせっかくマニュアル作っても言葉だけの説明は、文章読まない人にはまっっっっったく意味が無いことも分かった

なので前職でOne Noteでマニュアル作った時は

Shift+Windowsマーク+Sで画面切り抜きスクショして

ペイントで目立つように大きく囲って矢印付けて〜で画像だらけにした

 

現職では他の社員と共有する予定は今のところないので自分用にざっくりなマニュアル作りで楽な作業

ただ私物パソコンで作ってるから大企業だったら情シスぶち切れ案件ではある