![見出し画像](https://assets.st-note.com/production/uploads/images/97793466/rectangle_large_type_2_37b2662fc85fe9ada1ade9e1c8895db4.png?width=1200)
第50回 母国語で作る自作関数入門
今後のスケジュールはコチラ
投げ銭ページはコチラ
登壇者:和風スパゲティ
日時 :2023年2月11日 20時~
テーマ:日本語変数のすすめ+母国語で作る自作関数入門
![](https://assets.st-note.com/img/1676112744265-tv3OmnJgcC.png)
日本語変数のすすめ
いつものごとくExcelを使ってプレゼンテーション。A列をセル結合するのがポイント
![](https://assets.st-note.com/img/1676113417848-FrB9ZX75tq.png?width=1200)
自己紹介
スパゲティーコード。ただし母国語なら読める!という意味を込めたのが名前の由来。※実は英語は得意なほうです。
![](https://assets.st-note.com/img/1676113479406-jFbKNT8s91.png?width=1200)
![](https://assets.st-note.com/img/1676113686535-el1JQTOs0T.png?width=1200)
頭の体操、組み合わせ論
![](https://assets.st-note.com/img/1676113708074-nEx9nTOpKQ.png?width=1200)
![](https://assets.st-note.com/img/1676113812445-pJFvBbVFXN.png?width=1200)
解答
![](https://assets.st-note.com/img/1676113870346-r15mf0NW1o.png?width=1200)
![](https://assets.st-note.com/img/1676113896324-plSnIE9mvS.png?width=1200)
右の凸と左の凸のどちらかになる。緑と黒は同じ数になる必要があるが、同じ数にできない。なので不可能。
![](https://assets.st-note.com/img/1676113989519-LsovZgBE6r.png)
![](https://assets.st-note.com/img/1676114089069-ra1504JWwC.png?width=1200)
なるほどね。やっぱ母国語だとすっと頭に入る。
![](https://assets.st-note.com/img/1676114072910-nk9Vwrlzhh.png)
日本語変数・関数のメリット
![](https://assets.st-note.com/img/1676114171489-vuq9NHiDFX.png?width=1200)
業界用語など英訳が難しいものも多いよね。
![](https://assets.st-note.com/img/1676114198263-ps4gVm0RYR.png?width=1200)
![](https://assets.st-note.com/img/1676114251015-tyetFs5tXh.png)
流し読み実践!(英語版)
![](https://assets.st-note.com/img/1676114289239-UO9JbsVhqV.png?width=1200)
流し読み実践!(日本語版)
![](https://assets.st-note.com/img/1676114381905-pQi4m5ltc3.png?width=1200)
初心者でも何となく意味が掴める。見るべきポイントが掴みやすい。
小説を読んでいて、少し前に戻ることがある。この登場人物がでたところをもう一度読みたい。パラパラっとめくりながら目に一瞬だけ映る単語でそのページを見つけられるのは母国語ならでは!
日本語変数・関数のメリット!
表意文字+てにおわという最強コンビ
![](https://assets.st-note.com/img/1676114655663-pntUV4XtEl.png?width=1200)
![](https://assets.st-note.com/img/1676114867579-Tkh5MlszvH.png)
![](https://assets.st-note.com/img/1676114776573-cPQKkvqozL.png?width=1200)
![](https://assets.st-note.com/img/1676114834199-EfoL10YRsb.png)
![](https://assets.st-note.com/img/1676114887327-lZocxZoHLj.png?width=1200)
![](https://assets.st-note.com/img/1676114994281-pXPJlb4uQq.png)
クイックヒントで仮引数名が表示される。ここが日本語だと強い!
![](https://assets.st-note.com/img/1676115110186-QFArYVel01.png?width=1200)
![](https://assets.st-note.com/img/1676115218440-uSmk3CafYQ.png?width=1200)
日本語変数・関数のデメリット
![](https://assets.st-note.com/img/1676115988843-0DfeYC5Sof.png?width=1200)
ダメな英語を使ってもエラーにならないのに、英語力磨かれんのか?…疑w
![](https://assets.st-note.com/img/1676115637792-ambdh4dVoO.png)
シートオブジェクト名の最後が2バイト文字だと全てエラーになったことがある。確かにあったけど10年に1回ね。それより誤訳(変数名の意味の誤認)の方を避けるべき。
![](https://assets.st-note.com/img/1676115687542-p2780VXyeq.png)
クイックヒントの仮引数ハイライト位置がずれるというバグは今でもある。
![](https://assets.st-note.com/img/1676115894204-ENq2JJ4FXb.png?width=1200)
![](https://assets.st-note.com/img/1676115947169-jSAtuNHF8V.png)
日本語変数・関数を使うテクニック
![](https://assets.st-note.com/img/1676116070273-nzsY8506mZ.png?width=1200)
VBEではCtrl+Spaceの入力候補が表示され選択できる。(インテリセンス)
例えば↓入力するのに、日本語文字の直接入力は一度たりとも不要。
![](https://assets.st-note.com/img/1676116268428-9vQC5F43NN.png?width=1200)
![](https://assets.st-note.com/img/1676116319854-4iGwe32aHg.png)
![](https://assets.st-note.com/img/1676116332474-7bIkC5OppW.png?width=1200)
これはスゲーな。VBA専門ならここまでしてもいいかも。
As Worksheetの前に半角スペース入ってのがもう職人!ww
![](https://assets.st-note.com/img/1676116508920-f0OGeIvSKO.png?width=1200)
![](https://assets.st-note.com/img/1676116585740-dONMJwlwgY.png?width=1200)
![](https://assets.st-note.com/img/1676116627086-BNVnroa7dg.png?width=1200)
![](https://assets.st-note.com/img/1676116645313-n7VGTKu1c7.png?width=1200)
まとめ
![](https://assets.st-note.com/img/1676116781477-27Cw1E34Zj.png?width=1200)
![](https://assets.st-note.com/img/1676116818371-CMmtf8C28o.png?width=1200)
![](https://assets.st-note.com/img/1676116867993-w3f9JG3tYo.png)
![](https://assets.st-note.com/img/1676117043831-ucMF7blMkE.png)
おまけ・クリックした図形をずらすマクロ
![](https://assets.st-note.com/img/1676117259455-MwRf1pa4JC.png?width=1200)
母国語で作る自作関数入門
サンプルプログラム
![](https://assets.st-note.com/img/1676117373387-c7Wfg9peGs.png?width=1200)
商品毎にシートが別れた新規ブックが作成されるマクロ
![](https://assets.st-note.com/img/1676117417254-m2nc3zFRWd.png?width=1200)
サブルーチンのリアルタイムリファクタリング
既存コードの概要解説
![](https://assets.st-note.com/img/1676117549318-tr22D3kane.png?width=1200)
![](https://assets.st-note.com/img/1676117664404-efknh1POUR.png)
関数分割 実演
完成マクロのコメントをプロシージャー名にして分割・・・するだけ!
メインも短くなる。
![](https://assets.st-note.com/img/1676117862738-3zHVUUGIEC.png?width=1200)
![](https://assets.st-note.com/img/1676118014544-GBVc5GbMrk.png)
![](https://assets.st-note.com/img/1676117955753-M9kcdJsjeM.png)
![](https://assets.st-note.com/img/1676118074822-EixyA4PE98.png)
次はAutoFilter
![](https://assets.st-note.com/img/1676118160442-ZnWqaVNxyn.png?width=1200)
変数wsデータを引数にする必要があるので、引数として渡す。
例えばこれをコピペして他のツールに再利用するとしたときに、書き換える部分を引数に設定すると汎用性が増す。
![](https://assets.st-note.com/img/1676118226599-cY3GIXju0R.png)
変数名もそれっぽく変えて、可読性アップ!
![](https://assets.st-note.com/img/1676118351405-QTlzzmaWBA.png)
![](https://assets.st-note.com/img/1676118382239-hl8ehKKxS3.png)
![](https://assets.st-note.com/img/1676118439167-1zXaN3QEcj.png)
次はこの部分
![](https://assets.st-note.com/img/1676118484622-s6YEkUInPf.png?width=1200)
![](https://assets.st-note.com/img/1676118561121-IgjCIDTgIA.png)
![](https://assets.st-note.com/img/1676118744818-LQD7Vxk11w.png)
![](https://assets.st-note.com/img/1676118718530-8yv1h0MFpE.png?width=1200)
![](https://assets.st-note.com/img/1676118793711-3PBzZHCCfy.png)
次はソート
![](https://assets.st-note.com/img/1676119283483-xNI4Pia7VP.png)
![](https://assets.st-note.com/img/1676119036219-JbIxuXeffO.png)
![](https://assets.st-note.com/img/1676119052167-r835jbrfzE.png?width=1200)
![](https://assets.st-note.com/img/1676119157280-ml5Ot8ucgZ.png?width=1200)
こうやって汎用自作関数を増やしていくと開発が凄く楽になります。ただ。。。自作関数って人のをもらってもなかなか使えないんですよ。
![](https://assets.st-note.com/img/1676119418235-StTM4OpC1G.png)
一番長かったメインのFor Eachもサブルーチン化してこんな感じ。
![](https://assets.st-note.com/img/1676119482790-cbgpaJzVJm.png?width=1200)
![](https://assets.st-note.com/img/1676119663227-EeKclCBOp2.png)
汎用プロシージャーの配布方法
個人用マクロブックがオススメ。
マクロの記録で「個人用マクロブック」を選択してすぐ終了。
![](https://assets.st-note.com/img/1676119743357-qclD76ZC0l.png)
Personal.xlsb これが個人用マクロブック。
Excelを起動すると必ず一緒に開いてくれる。ただしシートなど表に見える状態にはならないブック。
![](https://assets.st-note.com/img/1676119775486-UQGKsDkluV.png)
ここ、ドラッグ&ドロップできるの。
![](https://assets.st-note.com/img/1676119893527-Vd0y6tKJvD.png)
新しいブックを作成したら、まずはこの汎用関数モジュールをD&Dするだけ。
![](https://assets.st-note.com/img/1676119966794-Wp6c21pAYL.png)
![](https://assets.st-note.com/img/1676120080796-1bz8zvRE1D.png)
汎用関数をまとめた汎用関数
![](https://assets.st-note.com/img/1676120383240-GiYAfxrMoH.png?width=1200)
ここまですることでメインプロシージャーは・・・これだけw
![](https://assets.st-note.com/img/1676120403035-6UDuM5Vh3j.png?width=1200)
個人マクロのリボン登録
これをActiveSheet、Selectionに対応するように個人マクロ登録。
![](https://assets.st-note.com/img/1676120596375-BPMf4oo9eS.png?width=1200)
リボンに登録すれば、リボンのボタン押すだけで作業完了!
![](https://assets.st-note.com/img/1676120574458-G9m1GcuzCi.png?width=1200)
![](https://assets.st-note.com/img/1676120667254-Q6SlpJv1lC.png)
宣伝
![](https://assets.st-note.com/img/1676120150839-Rdu11ed2jK.png)
![](https://assets.st-note.com/img/1676120825494-ywJOaGWdJC.png)
サンプルファイル
この記事が気に入ったらサポートをしてみませんか?