気ままなSE(システムエンジニア)のお気楽日常ブログ

お気楽なシステムエンジニアが執筆する気ままな日常!
仕事や料理や漫画、映画や日々の気付きを書いてます♪

システム開発の強い味方!VBAの上級編 ACCESSの魅力3選♪♪

2022-06-12 23:23:13 | システム
こんにちは〜!チーム株式会社の緒川修(おがわおさむ)です!!
今日はシステムの開発でも私がよく活用していたACCESSついて語っていきます!
 
ちなみに今回はある程度ITの知識がある人向けになっています。
 
あと前提としてACCESSとExcelはVBAで操作することが可能です。
0.概要とExcelとの違い
これからACCESSとExcelの違いを説明します。
まず一番の違いとしてはExcelはワークシートでデータを管理し、ACCESSはデータベースで管理するところです。
 
そのためACCESSはセルに対してデータを入力するための規則が厳しく、型の違うデータは入力が出来ません。
Excelであればエラー表記や変な表示になってしまう事はあっても入力は出来るので、これも大きな違いと言えます。
 
そんなACCESSですが、色々な便利機能も実装されているので紹介していきます!
 
1.クエリにより簡単にSQLを作成出来る
Excelでデータベースを利用したい場合は外部のデータベースに接続してVBAにSQLを記載する必要があります。
 
これは実際にVBAのプログラミングをすると分かるのですが、ソースコードにSQLを書き込むと見づらい上に長くなります。
 
対してACCESSではテーブルとして内部にデータベースを持っているものなら、クエリ機能を用いてSQLを簡単に自動作成出来ます。
 
またクエリを呼び出す関数もあり、SQLを直接VBAに書き込む必要が無いのでソースコードがすっきりします。
 
ちなみに詳しくは割愛しますが、クエリの項目にVBAの実行結果を入れる上級テクニックもあります。
 
2.外部のデータベースと接続出来る
次に紹介するACCESSの魅力は、外部のデータベースと接続出来ることです。
最近のシステムはoracleやSQLサーバーをはじめとして、様々なデータベースを使用しています。
 
そのため複数のデータベースを使用してるシステムだと、それぞれのデータベースの管理画面からデータを操作するのは手間がかかりミスの元になります。
 
 
しかしACCESSはODBCドライバを用いて外部のデータベースと接続出来ます。
そのためACCESSを開くだけで複数のデータベースを操作出来るので、かなり楽になります。
 
さらにコマンドプロンプトからSQLを実行する事で、操作するMySQLなども直接入力で操作出来るのでSQLを書く手間も省けます。
 
3.格納できるデータ量が多い
最後に紹介する魅力は、Excelと比較するとACCESSは多くのデータを格納する事が出来ることです。
 
Excelは行や列の最大数が決まっており、1つのセルに対する最大の入力文字数も3万文字と制限があります。
 
しかしACCESSは2GBまでなら行、列、文字数に制限が無いので大量のデータを処理するのに向いてます。
 
ただしoracleやSQLサーバーのようなデータベースに特化したものには容量で負けるので注意です。
 
4.終わりに
今回は書いている内容がかなりシステムエンジニア向けの内容でした。
ですがそれだけにACCESSはある程度SEとしての経験がある人には便利なものなので、是非機会があれば使ってみてください。
 
あとExcelのVBAを習得して「次のステップに移りたいぞ」という人にもオススメです!
 
今日は以上です。
 
最後まで読んでいただき、ありがとうございます!

お気楽システム日記 画面から情報が取れる!Uipathのセレクター機能を紹介♪♪

2022-06-12 23:19:32 | システム
こんにちは〜!チーム株式会社の緒川修(おがわおさむ)です!!
今日は本業であるSEらしく、システムの事を書いていきます。
 
とは言ってもお気楽にいきたいので、タイトルにはお気楽を付けてみました!
 
今回はRPAのシステムの1つであるUipathの独自機能であるセレクター機能の紹介です。
 
1.セレクター機能とは?
まず、セレクター機能とは何か?と言うことから説明していきます。
これはざっくり言うと、画面の情報を取得したり操作したりすることが出来る機能です。
 
これの何が凄いかと言うと、今までは画面の情報を取得したり画面を操作するシステムを作成する場合は、複雑なプログラムを組む必要がありました。
 
ですがセレクター機能があるUipathであれば、操作したい画面に対して操作指定してあげれば簡単に画面操作が出来るんですよね。
 
もちろん、操作指定にはアクティビティ等の専用の概念の理解が必要になりますが、これはここで語るよりも実際にUipathに触れて慣れてしまった方が早いので、説明は割愛します。
 
やっぱり画面を直接指定出来るのは、段違いでやりやすいですね!
 
2.実用例
ここからは実用例を書いていきます。
 
・Webページの情報を取得
たまに依頼されるのが「Webサイトの情報を取得して欲しい」というものです。
 
例えば、起業情報を検索出来るWebサイトがあるとします。
そこで「医療系」と検索すると企業名が数百件ほど出てきます。
 
そこで1つ1つのリンク先に飛んで、その先にある企業情報を下記の項目ごとに取得しExcelに貼り付ける作業をするとします。
 
◆取得項目
・企業名
・事業内容
・住所
・電話番号
・メールアドレス
 
これ全てを手作業でやると、すごく大変ですよね。
10~20企業くらいなら手作業でも短時間で出来そうですが、100~200企業となると膨大な時間が掛かるので、手作業での取得はなるべくしたくないところです。
 
しかし、これがセレクター機能を使えば、検索結果一覧にある企業を上からクリックしてその先の情報を取得した後、検索結果一覧に戻って次の企業の情報を取得する作業を素早く簡単にできます!
 
もちろんほっといても自動で繰り返すように設定する事も可能なので、帰宅時に設定しておくこともできるので便利です。
 
・日々の定型業務の自動化
私はこのプログラムを作る事が多いですね。
 
日々の定型業務は必要ではありますが、同じ事の繰り返しなら代わりにやってくれるシステムを構築して自動化したいです。
 
もちろんUipathならそれが可能で、しかもセレクター機能により、画面が表示されればクリックから文字の入力まで幅広い操作ができます。
 
画面さえあれば多くの媒体を操作できるのはUipath最大の魅力だと私は思っています。
 
3.終わりに
みなさん、いかがでしたでしょうか?
Uipathは複雑なプログラミングなど必要なく、簡単に画面操作できるので、触れる機会があったらどんどん活用してみてください!
今日は以上です。
 
最後まで読んでいただき、ありがとうございます!
 
 
 
 
 

システム運用保守あるある いつの間にかついてる業務知識♪♪

2022-06-12 23:18:10 | 仕事
こんにちは〜!チーム株式会社の緒川修(おがわおさむ)です!!
今日は1ヵ月ほど前に体験したことを書いていきます!
(まぁ、実際は現在進行形なんですけどね)
 
私はシステム開発だけではなく運用保守も行っているのですが、そうすると不思議なものでシステムが携わっている業務の内容も何となく覚えてる事が多いです。
開発だけなら、仕様書通りに作業をすればシステムを作る事は可能ですが、運用保守はシステムが正しく動いている事を判定する必要があるんですよね。
 
私が作ったシステムの1つに請求の一覧を取得して別のWebサイトにアップするものがあるのですが、そのWebサイトは請求の一覧に間違いがあるとエラーを起こしてしまいます。
 
そして、エラーが発生した場合はシステムに問題があるのか、作成した一覧に問題が起こっているのかを、切り分ける必要があります。
 
最初のうちは良く分からなかったので、請求の一覧を作っている担当者に確認してもらっていたのですが、だんだん慣れてくると何が悪いのかが何となくあたりがついてきます。
 
さらに何でエラーが発生したのかを聞いているうちに、請求の一覧についてかなり詳しくなっているんですよね。
 
 
 
年度が変わり、請求の一覧を作成する担当者の部署異動が決まった年度末のある日の話です。
 
当然のことですが、担当者が部署を異動してもその業務が無くなるわけではないので、後任の方に引き継ぐことになります。
 
後任の方は2名ついたのですが、初めての業務なので分からない事だらけ、という状況でした
そんな、業務内容に慣れていない2人に対して、部署異動の最終日に前任の担当者が一言。
「それでは緒川さん、後任の2人のことは宜しくお願いしますね!業務のことでなにか2人が分からない事があれば教えてあげてください。」
 
私はシステム担当であって事務担当では無いのですが・・・。
事務担当が業務内容をシステム担当に聞くのは私の仕事人生で前代未聞ですよ。
 
そういうふうに胸中で突っ込んではみますが、確かに担当の方が私に依頼する気持ちも分かります。
 
真面目にシステムの運用保守をやっていたら、担当の方に匹敵するほど業務に詳しくなっていたことを実感した出来事でした。
 
一芸に長けるものは多芸に長けるといいますが、1つの仕事を頑張りながらも、その事に付随する仕事が出来るようになっていくのも本当に大事なんですね。
 
さて、私もこれから後任の方のフォローがんばっていきます!
   
今日は以上です。
 
最後まで読んでいただき、ありがとうございます!

システム開発も段取り八分 設計の大切さ♪♪

2022-06-12 23:16:57 | システム
こんにちは〜!チーム株式会社の緒川修(おがわおさむ)です!!
今日はシステム開発において大切な設計について書いていきます!
 
1.何故設計が大事なのか?
設計は、システムを開発する際にコーディングをどのように行うかの段取りを決める大切な作業です。
 
具体的には仕様書と呼ばれる、システム開発における設計書を書く作業になる事が多いですね!
 
そして何故その作業が大切かと言うと、ある程度の大きさのシステムになると沢山の処理があったり処理の流れが煩雑になるので、一旦目に見える形で残すのが大切なんです。
 
もちろんソースコードを読めばある程度は分かるのですが、ソースコードは長いのでたとえ自分が書いたものであっても読解するのに時間が掛かります。
 
大きなシステムになればなるほど膨大なソースコードを書く必要があるので日数がかかります。
しかも、自分が書いたソースコードで、ある程度コメントを残していたとしても、次の日には結構忘れている事が多いんですよね。
 
なのでいちいち読解の作業を省くためにも、設計をきちんと記載した仕様書で進捗管理するのが大事なんですよね。
 
ある程度どう書いていくか決まっていれば、あとはそれ通りに作るだけなので、余計な迷いが生じる事も少なくなります。
(もちろん、システム開発の道筋が立っていても技術的につまる事も多いので、完全に迷わないという訳ではないですが)
 
2.どうやって設計していくか?
ここからは私が普段どう設計を行っているのか書いていきます。
ただし、設計の方法は会社によっては指定があるケースもあるので、あくまで一例として聞いてください。
 
まずはフローチャートを作って全体の流れを把握していきます。
フローチャートは図形と矢印で処理の流れを表せるので、全体を見るのに便利なんですよね!
(ちなみに、私はシステムの概要や要件を記載したものにフローチャートを組み合わせて仕様書にしていた事も多かったです)
 
そしてソースコードを書くものだとまだ一工夫必要です。
 
どうするかというと、フローチャートの各所にどんな関数やメソッドを使って書いていくのかメモ書き程度に残していきます。
 
ここまでやっておけば、あとは処理どうしを繋げるだけなので作るときにかなり楽になります!
 
3.終わりに
ここまで、私なりのシステムの設計について書きました。
もちろん人によってやりやすいやり方は異なりますし、上記のように会社ごとに指定されてるケースもあります。
 
ですが、設計をちゃんと行えば行うほど開発は楽になるので、みなさんもシステム開発を行うときは設計をきちんと行っていきましょう!
 
今日は以上です。
 
最後まで読んでいただき、ありがとうございます!

お気楽SE日記 上期の目標を決めてきました♪♪

2022-06-12 23:13:27 | 目標設定
こんにちは〜!チーム株式会社の緒川修(おがわおさむ)です!!
今回は4月の中ごろに上期の目標を決めた時の話を書いていきます。
 
新しい年度になると、重要になるのが目標設定!!
 
目標設定といえば、分かりやすいのが売り上げです。
しかし私が開発しているRPAの業務自動化システムはの成果は導入することの売り上げの金額ではありません。
システムによる作業時間削減による費用削減で生み出される見込みの金額が売り上げ成果なので、考え方が特殊です。
 
具体的な計算式を書くとこんな感じですね!
 
成果(費用対効果) = 業務自動化システム導入による削減時間×社員の平均給料を時給に直した額
 
長期的な目標として費用対効果の年間1,000万円達成があります。
ですが、1つの業務自動化システムにつき費用対効果は、よくて数10万円なのですぐには難しいです。
(メインで稼動しているuipathは、同じPCで1つのシステムが稼動している間は次のシステムは動かないので、無闇にシステムを作りすぎると、玉突き衝突のような現象を起こしてシステムが一気に複数動かなくなる可能性があります。)
 
そこで、今回は下記二つを目標として設定しました!
 
1.開発するシステムの数
こちらは単純ですね。
 
無闇に作りすぎるのは確かによくないですが、そもそも数を増やさない事には始まりません!
 
システム同士がうまく動くように、稼働時間と必要とされるタイミングをうまく調整して、なるべく多くのシステムが順番に動くようにしていくのが大切です!
(使う人の都合によって動く時間や日にちが指定されているケースもあるので)
 
また、出来ることがuipathより減ってしまいますが、同時に複数のシステムを動かせるPower Automateを活用するのもひとつの手段です!
 
最終手段として業務自動化システムを稼動できるPCを増やすというのもありますが、こちらはライセンス料がかかってしまうので、本当に最終手段ですね!
 
前期も4つのシステム開発を目標にしていましたが、見事7つ開発できました!
 
 
2.保守工数の削減
 
もう1つの目標は、保守工数の削減です。
 
システムは毎日動いているので、どうしても不具合が発生してしまうケースがあります。
 
一度対応してしまえばそれっきりなものもありますが、どうしても繰り返し発生してしまうものもあります。
 
1つ1つは軽微なのですが、積み重なるとそれなりの量になってしまううえ、システムの数が増えれば増えるほど発生する不具合も増えてしまい、保守工数がかさんでしまいます。
 
なので、1つ目の目標をスムーズに達成するためにもシステムを少しでも安定させて保守工数を減らす事は必須になります!
 
3.終わりに
年々仕事が出来るようになってくると、目標を決めるのが楽しくなってきます!
やはり、人間はゴールが決まっているからこそ頑張れるというもの。
 
みなさんもワクワクするような目標を立てて、充実した1年にしていきましょう!
今日は以上です。
 
最後まで読んでいただき、ありがとうございます!