【スキルシート】実績備忘録

## この記事を投稿した背景
- フリーランスの業務改善エンジニアとしてお仕事をもらうため
- 自分の作ってきたものを忘れないため
- 後で振り返ってみたときに成長を感じるため(少しでも自己肯定感を上げたい)

## 要約
<details><summary>そんなのいいから貴様は何を作ってきたんだという方は飛ばしてください</summary>

私はこれまで様々な業種や職種を経験してきました。
物流、バーテンダー、インターネット回線や林檎携帯電話のテクニカルサポート、エネルギー企業の事務処理チームのSV(北海道では初の事業で立ち上げから参画しました)、AI関連企業、福祉の事務員・・・
とにかく軸が定まっていませんでした。
そんな中、一番長く続いているのはプログラミングで、これだけは命かけてもいいくらい好きだと言い張れます。
過去、趣味という趣味は尽く飽き性で続かず、職場も長く勤められずで、今現在も自分の性格が嫌いなのですが、唯一長続きしているのがプログラミングです。
とある職場で初めてExcelに触れてからは、データ入力や関数の挿入を経てからマクロまでの道のりは一瞬でした。
いちいちコピペするのが面倒で嫌になったのです。
そこから始まった私の経歴、どうか生暖かい目で見てやってください。
</details>

:::note warn
すべて独学です。
着眼点やアイデア、書き方からまとめ方まで至らないところはあるかもしれませんが、ご容赦いただけると幸いです。
:::

ここに記載した内容は、いずれ覚えている範囲で記事にできたらとは考えていますが・・・？
ちなみに僕が一番最初に実行したのは"Hello World"ではなく、Excelの範囲削除でした。
「魔法じゃん！！！」と22歳にして本気で思ったことは今でも鮮明に覚えています。

:::note info
開発してきたものは抜粋しています。
詳細を失念したものもあります。
大した成果はないですが、クライアントや社内で提案して作成したり(業務改善コンサル的な？)、自分用として勝手に作りました。
今後更新していきます。
メンタル弱いので強い言葉で批判しないでもらえると助かります。
:::

## VBA

<details><summary>顧客管理シート</summary>

- 多分初めての開発
- 取引先より提出されたExcelファイルや基幹システムより抽出したBIデータを取り込み、突合させて表へデータを加工して転記
- それぞれの申込に対して次の対応が必要になる日付を自動で割り出し、状況・タイミングによってはアラートダイアログを出力
- 顧客管理表が生成されてから2か月後にマクロ機能を削除、データ容量を最小限にしたExcelファイルを出力し、指定フォルダに保存(アーカイブ)
- このタイミングで新しくマクロ搭載の顧客管理表を新しく生成
</details>

<details><summary>差込印刷</summary>

- クライアントより依頼のあったもので、当方で管理しているデータで対象者がいればDMを郵送したいとのこと
- 顧客管理表から複数の条件に合致した対象者を抽出
- 抽出したデータと基幹システムより抽出したBIデータを突合し、その中からさらに条件に合致した対象者をピックアップ
- データをWordの差込印刷機能に渡して印刷開始、Accessへ履歴として保存して終了

</details>

<details><summary>申込の自動判別</summary>

- 取引先より提出された申込用Excelファイルの回答を作成
- 事前に申込者のBIデータを取得
- 申込ファイルとBIデータを突合し、下記の条件分岐に沿ってステータスを分け、回答用として新規作成
    - 問答無用で対応不可の場合は不可ステータス
    - 難しい場合は空欄
    - 問題なければ可
- 回答ファイルを作成し、リネームして指定フォルダへ保存
    - 「【取引先名】yyyyMMdd_【回答】[申込フェーズ名].xlsxで作成
    - フォルダは作成されていなければ新規で作成して格納、見つかればそのまま格納
</details>


## GAS(Google Apps Script)

<details><summary>一斉メール送信</summary>

- スプレッドシートで保持している顧客に対して一斉に送信したかった
- リンクやフォントを整えたHTML形式でGoogle Drive内に保存しているPDFファイルを添付
    - 添付したファイルは期間限定公開だったので、メール送信から一定の期間を迎えると公開範囲を設定
- 送信完了、送信不可のステータスをスプレッドシートに反映
</details>

<details><summary>API連携</summary>

- Slack
    - チャンネル作成、メンバー招待、メッセージ送信
    - すべてのチャンネルへのメッセージ送信
- HRMOS
    - 勤怠情報の管理と分析や計算
    - 最終的にはtableauのダッシュボードを構築
- 動画ストレージサービス
    - あまり記憶にないですが、URLとIDを結合してダウンロード専用のURLを生成した記憶はあります。
- Zoom
    - OAuth認証が大変でした。どう実装したか覚えていないので勉強しなおします。
</details>


## Python

<details><summary>動画ダウンロード</summary>

- 動画ストレージサービスからPCに接続しているSSDへの保存
- APIとかではなく、GASで取得・成形したURLへ直接アクセス(APIでは制御できない部分だったため)
    - あまりいい対応ではなかったと思います。
- 実行時間は60時間以上、10TB相当のデータ量だったため、手動で実行することを考えると数日間張り付くことになるのは確実
</details>

<details><summary>イベントサイトへの自動入力</summary>

- イベントサイトへの自動入力
    - サムネイルの登録は少しコツがいるため、それ以外を自動化
</details>

<details><summary>SwitchBotの自動制御</summary>

- 2024年9月現在取り組んでいるもの
- オートロックを自動で解錠できるようにしたくて・・・
- SwitchBot API V1.0の使用経験はあったが、ロックの解錠はV1.1から対応
- 人感センサーとiPhoneの位置情報をトリガーとして実行
- ロックそのもののプログラムは完成しているが、人感センサーの到着待ち
</details>


## UiPath
唯一独学ではなく、社内の講習会を受けたもの
講習会を受けないとUiPathの開発ができないというものの、概要をサラッと教わるだけで、導入が決まった時にある程度自己学習していた自分にとってはおさらいみたいなものでした

<details><summary>基幹システムの自動操作</summary>

- 初のUiPath案件
- Excelファイルのデータをもとに、社内の基幹システムを操作するロボットを作成
- 結構大きな組織だったので、まぁまぁ厳密な管理をしていました
    - そういえば使いたいときに有効ユーザーが足りなかったらライセンス付け替えるとかやってた気がします
- DBを更新したり、事務処理をさせました
- 座標指定ではなく、しっかりタグ指定させて細かく設定
- 初VB.Netでもありました
</details>

## その他

<details><summary>バッチファイル</summary>

- 定型業務だったのもあり、3時間の業務をボタン一回10分で終了
- 大したことではなく、「Excelで指定したパスのファイルを開く」くらいのコード
    - 開いたらマクロを即実行するExcelファイルを一つ開くだけ
- このExcelファイルですべてが終わるだけなので、勉学のためにどんなものかやってみようレベルのもの
- 
</details>

<details><summary>SwitchBot API</summary>

- また出ました
- C#やGASでも試そうということで取り組んでいます
- 一応どちらでもPOSTできています
- C#ではコンソールアプリではできたものの、フォームアプリではクラスやらアセンブリ参照やらで苦戦中
- GASではウェブアプリとしてデプロイしたもので成功
- iPhoneのショートカットから実行したい
- PC上で家電操作したいのでソフトウェア化したいという気持ちも
</details>

## まとめ？
自分の扱える言語で代表的なものはこんなところかなと思います。
どのツールも期間は覚えていないですが、作った会社は覚えています。

将来は、影響や結果を多角的に捉えられる業務改善のプロフェッショナルになることが目標です。

学習についてはずっとしていきます。
何しろ最近X(Twitter)を見るようにQiitaを見ているのですから…

**お仕事いただけたら喜びます**