tag:crieit.net,2005:https://crieit.net/users/33hata33/feed Hataの投稿 - Crieit CrieitでユーザーHataによる最近の投稿 2021-12-08T15:47:41+09:00 https://crieit.net/users/33hata33/feed tag:crieit.net,2005:PublicArticle/17837 2021-12-08T15:36:31+09:00 2021-12-08T15:47:41+09:00 https://crieit.net/posts/Access-VBA Access基本操作の次は、模擬問題(総合演習)とVBAが待っている。 <p><a href="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461b05012c09b2.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461b05012c09b2.jpg?mw=700" alt="image" /></a></p> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4865103236/ref=cm_sw_em_r_mt_dp_YGXF681H83ZKYNYKZCT8">Microsoft Office Specialist Microsoft Accsess 2016 対策テキスト&問題集 (よくわかるマスター)</a></p> <p>という本を「2020年5月」にAmazonで購入していたので、進めている。</p> <p>12月4日から8日までかけて(1日1時間程度、8日だけ2時間ちょっと)ほぼ終わった。</p> <p>時間は今日以外は測っていたわけではなくて<br /> Accessファイルは開くと上書き保存されるのでそれで見て、<br /> せっかくだからとスマホアプリ(Studyplus)に記録をつけで判明した。合計6時間。</p> <p>ほぼ終わったっていうか最後に大きな模擬問題が待ち構えていて、<br /> その手前までほぼ終わった。</p> <p>しばらく前に模擬問題をやろうとしたら、全然時間も足りなくて、<br /> 頭がハテナマークでいっぱいになったけど。</p> <p>5日間で駆け抜けたはずなので、基本操作はあまり忘れていないはず。。。</p> <p>なのだけど。</p> <p>そもそも。</p> <p>別に、Accessの操作ができるようになることがゴールではなくて。</p> <p>もう次にこの本が待っている。↓ 5日に届いてやっとさっき開封した。</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297107007/ref=cm_sw_r_tw_dp_MFXX0YJ99PKEWJP2YPG1?_encoding=UTF8&psc=1">Access VBA 実践マスターガイド~仕事の現場で即使える 今村 ゆうこ </a></p> <p>楽しみ楽しみ。</p> <p>٩(ˊᗜˋ*)</p> Hata tag:crieit.net,2005:PublicArticle/17825 2021-12-06T07:35:52+09:00 2021-12-06T07:38:02+09:00 https://crieit.net/posts/Access-SQL-JOIN AccessをやりながらSQLもやる。「JOIN」 <p><a href="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461ad3eb65a82f.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461ad3eb65a82f.jpg?mw=700" alt="image" /></a><br /> 今の仕事がいやだというモチベーションによって、<br /> いまだかつてない熱量でAccessとSQLに本気で取り組んでいる。(大袈裟)</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4865103236/ref=cm_sw_em_r_mt_dp_YGXF681H83ZKYNYKZCT8">Microsoft Office Specialist Microsoft Accsess 2016 対策テキスト&問題集 (よくわかるマスター)</a></p> <p>という本を「2020年5月」にAmazonで購入していたらしい。</p> <p>途中まで進めていたのだけど、最近、最初からせっせとやり直ししている。</p> <p>前に作ったテンプレートを発見したが、日付は1年半前(2020年6月)だった。</p> <p>テーブルの章が終わってクエリに突入した。</p> <p>それで、この前紹介したYouTubeのおかげで、<br /> AccessでのSQLの表示の仕方がわかったので、表示してみたら、「INNER JOIN」と書いてある。</p> <p><a href="https://crieit.now.sh/upload_images/0aef939e06a11cf7d6151d4356db135961ad3b7e8dcde.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0aef939e06a11cf7d6151d4356db135961ad3b7e8dcde.png?mw=700" alt="image" /></a></p> <p>知ってるけど知らない。(見たことあるけど覚えてない)</p> <p>調べる。</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/ngron/items/db4947fb0551f21321c0">【INNER JOIN, LEFT JOIN , RIGHT JOIN】テーブル結合の挙動をまとめてみた【SQL】</a></p> <p>両方ともの表にないと表示されないのがINNER JOIN。</p> <p>他のもまとめて覚えよう。</p> <p>Access本の次の課題のSQL文を見たら「INNER JOIN」が何個もあって、気が遠くなった。<br /> 自動生成されているからこうなっているのか、それともこんな見た目が複雑な結合を書くのかな。<br /> (どこが区切りなのか分かりづらい)</p> <p>本の課題自体は、すでに出来上がっているものに一部の操作を加える手順が書いてあるので、<br /> 課題だけをやるならなんの支障もないのだが。</p> <p>まあ(Accessは)クエリが山場だ・・・。</p> <p>でもさらっとやって、あとで見直そう。<br /> 繰り返した方が記憶に定着するだろうし、進んでる気分になれるし。</p> <p>それにこんなところでてこずっている場合ではない。<br /> 総合演習問題が解けないと意味がない。</p> <p>パソコンを開けない時は本を開いている。<br /> <a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4295005096/ref=cm_sw_r_tw_dp_RR2VJ8KZCNX93YGSEEFC?_encoding=UTF8&psc=1">スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリわかる入門シリーズ) 中山清喬 </a></p> <p>6章の「集計とグループ化」まで読んだ。JOINは8章に出てくるらしい。</p> <p>この本も前に見ているはずだけど、すっきりさっぱり記憶にない。</p> <p>がんばる。</p> Hata tag:crieit.net,2005:PublicArticle/17816 2021-12-04T06:58:24+09:00 2021-12-18T06:53:28+09:00 https://crieit.net/posts/SQL-SQL-SQL SQLの勉強「SQL攻略」「SQL入門」 <p><a href="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461aa9047c2ffe.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461aa9047c2ffe.jpg?mw=700" alt="image" /></a></p> <h2 id="SQL攻略"><a href="#SQL%E6%94%BB%E7%95%A5">SQL攻略</a></h2> <p>「SQL攻略」<br /> <a target="_blank" rel="nofollow noopener" href="http://sql.main.jp/">http://sql.main.jp/</a></p> <p>ちょっと古いサイトで、httpだけど。。</p> <p>WEBサイト内でサクサク動かせるのはいい。</p> <h2 id="SQL入門"><a href="#SQL%E5%85%A5%E9%96%80">SQL入門</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4844333933/ref=cm_sw_r_tw_dp_WXGCJQZYHXY3PX4Q7T0Q?_encoding=UTF8&psc=1">スッキリわかる SQL 入門 ドリル215問付き! (スッキリシリーズ) 中山 清喬 </a></p> <p>前にこの本を買って、途中まで読んだ。<br /> この本の問題はWEBサイトでできます!って書いてあって<br /> 確かにできるのだけど</p> <p>作りが・・・すごく使いづらい。<br /> 動くけど、使いづらい。もうちょっとなんとかならなかったのかな。</p> <p>普通、WEBサイトで入力しながら学習できます!って<br /> すごく勉強しやすいものだと思うのだけど。</p> <p>だったら、テーブルデータだけをダウンロードできるとか、の方が良かった。</p> <p>データを手入力でポチポチ入れるの大変だから、<br /> selectを使いたいときに、DB作ってテーブル作ってデータ入れてたらちょっと大変すぎる。</p> <p>まあ「DB作ってテーブル作ってデータ入れる」のの練習にはなるだろうけど・・・。</p> <p>会社にこの本が置いてあった。<br /> でもこの本じゃなくて別の本が見たかったなー。</p> <p>SQLってもっと複雑なイメージなんだけど、<br /> もしかしてそうでもないのかな?</p> <h2 id="SQL Server"><a href="#SQL+Server">SQL Server</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4883376826/ref=cm_sw_r_tw_dp_4JSZH3R938Y34QNE324N?_encoding=UTF8&psc=1">SQL Server 2008の教科書―基礎から実践まで学べる 松本 美穂 </a></p> <p>前に(2018年頃?)この本中古で買ってやってみてた。</p> <p>役に立っているかどうかは、<br /> もう内容を忘れたので分からない。</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>本はたくさん(?)出てるので、いくつか図書館で予約して借りる予定。<br /> 借りてみて良さそうだったら、買うこともあるかもしれない。<br /> 重複している箇所がたくさんありそうだけど、ある程度までは練習と思ってやってみるのがいいかも。</p> Hata tag:crieit.net,2005:PublicArticle/17812 2021-12-03T11:21:47+09:00 2021-12-04T01:29:51+09:00 https://crieit.net/posts/0c44d8507f3ff0c2cd41e2f8c6187d46 会社がなくなって、転職を余儀なくされた件。 <p><a href="https://crieit.net/posts/SE">社内SEに向いているのはこんな人(かもしれない)2020年振り返り記事</a><br /> ↑2020年のアドベントカレンダーに書いた件。↑お文具満載♪↑</p> <h1 id="2021年の秋に会社がなくなりました。"><a href="#2021%E5%B9%B4%E3%81%AE%E7%A7%8B%E3%81%AB%E4%BC%9A%E7%A4%BE%E3%81%8C%E3%81%AA%E3%81%8F%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82">2021年の秋に会社がなくなりました。</a></h1> <p><a href="https://crieit.now.sh/upload_images/58f50350e2e1f72a48cd9863968e797161a9781d192d5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/58f50350e2e1f72a48cd9863968e797161a9781d192d5.png?mw=700" alt="image" /></a></p> <p>転職活動して、<br /> 今は、IT企業で<br /> 派遣で働いてます。</p> <p>でもなんか<br /> 思ってたんと違う。。。(´;ω;`)</p> <p>時給が安い上に、<br /> 全然役に立てない。(´;ω;`)</p> <p>周りができる人ばかりで<br /> 自分は・・・という無力感。(´;ω;`)</p> <p>コードを書く仕事も<br /> させてはもらえない。(VBAじゃないからね...)</p> <p>無力・・・orz</p> <hr /> <p>これなら在宅勤務の</p> <h1 id="VBAの仕事の方が、時給高いし良いよ!!"><a href="#VBA%E3%81%AE%E4%BB%95%E4%BA%8B%E3%81%AE%E6%96%B9%E3%81%8C%E3%80%81%E6%99%82%E7%B5%A6%E9%AB%98%E3%81%84%E3%81%97%E8%89%AF%E3%81%84%E3%82%88%EF%BC%81%EF%BC%81">VBAの仕事の方が、時給高いし良いよ!!</a></h1> <p>と思ったので、<br /> <strong>Access</strong>と<strong>SQL</strong>をバリバリにマスターして(?)</p> <h3 id="転職する予定です(・◇・)/~~~"><a href="#%E8%BB%A2%E8%81%B7%E3%81%99%E3%82%8B%E4%BA%88%E5%AE%9A%E3%81%A7%E3%81%99%EF%BC%88%E3%83%BB%E2%97%87%E3%83%BB%EF%BC%89%2F%7E%7E%7E">転職する予定です(・◇・)/~~~</a></h3> <p>難しいことは、できる気がしないので<br /> AccessとSQLならがんばればなんとかなるだろう、という安易な考えです。</p> <p>難しく使おうと思ったらいくらでもできるとは思うのですけども、<br /> 基本的なことはなんとかなるだろうと。(バリバリはどこへ?)</p> <h1 id="VBA資格取ったよ!"><a href="#VBA%E8%B3%87%E6%A0%BC%E5%8F%96%E3%81%A3%E3%81%9F%E3%82%88%EF%BC%81">VBA資格取ったよ!</a></h1> <h4 id="とりあえず、"><a href="#%E3%81%A8%E3%82%8A%E3%81%82%E3%81%88%E3%81%9A%E3%80%81">とりあえず、</a></h4> <h4 id="Excel VBA使えるよ!という証明書的なやつ"><a href="#Excel+VBA%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%EF%BC%81%E3%81%A8%E3%81%84%E3%81%86%E8%A8%BC%E6%98%8E%E6%9B%B8%E7%9A%84%E3%81%AA%E3%82%84%E3%81%A4">Excel VBA使えるよ!という証明書的なやつ</a></h4> <p><a href="https://crieit.now.sh/upload_images/ea529d135d82b695ca7894f8c29f081461a9798cd56e7.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ea529d135d82b695ca7894f8c29f081461a9798cd56e7.JPG?mw=700" alt="image" /></a></p> <h4 id="取りました!!"><a href="#%E5%8F%96%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%EF%BC%81">取りました!!</a></h4> <p>あまり関係ないというか知らないこといっぱいあって<br /> 前日まで体調崩してて、焦ったけど・・・。</p> <p>何年も前から、取っといた方がいいよなーと思ってた資格だったのですが<br /> やっと受験して、1回目で受かりました。</p> <p>受験料もそんなに安くないから、受かって良かったです。</p> <h2 id="VBA試験対策は"><a href="#VBA%E8%A9%A6%E9%A8%93%E5%AF%BE%E7%AD%96%E3%81%AF">VBA試験対策は</a></h2> <h4 id="↓これ買って、WEBで練習問題たくさんやって。"><a href="#%E2%86%93%E3%81%93%E3%82%8C%E8%B2%B7%E3%81%A3%E3%81%A6%E3%80%81WEB%E3%81%A7%E7%B7%B4%E7%BF%92%E5%95%8F%E9%A1%8C%E3%81%9F%E3%81%8F%E3%81%95%E3%82%93%E3%82%84%E3%81%A3%E3%81%A6%E3%80%82">↓これ買って、WEBで練習問題たくさんやって。</a></h4> <p><a target="_blank" rel="nofollow noopener" href="https://www.exam-vba.com/">VBAエキスパート試験対策</a></p> <p>あんまり繰り返してやると答えを覚えてしまうので<br /> 意味なく丸暗記してしまわないように気をつけつつ。。。</p> <p>しかしこれよくできてて、解答履歴とかもあるし、パーセントも出るし、<br /> 過去○回間違えた問題だけを出すとかも選べるし、回答の選択肢の番号もランダムにできるし<br /> こんなの作れたら、、、いいよなーと憧れます。</p> <p>めっちゃ手間かかりそうだけど、コツコツ稼げそう。。。</p> <h4 id="あと、"><a href="#%E3%81%82%E3%81%A8%E3%80%81">あと、</a></h4> <h4 id="↓VBAサイトで有名な田中さんの本も買って試験範囲を把握しておきました。"><a href="#%E2%86%93VBA%E3%82%B5%E3%82%A4%E3%83%88%E3%81%A7%E6%9C%89%E5%90%8D%E3%81%AA%E7%94%B0%E4%B8%AD%E3%81%95%E3%82%93%E3%81%AE%E6%9C%AC%E3%82%82%E8%B2%B7%E3%81%A3%E3%81%A6%E8%A9%A6%E9%A8%93%E7%AF%84%E5%9B%B2%E3%82%92%E6%8A%8A%E6%8F%A1%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82">↓VBAサイトで有名な田中さんの本も買って試験範囲を把握しておきました。</a></h4> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4908327122/ref=cm_sw_r_tw_dp_RHJACXM534PD5BQTJDTR?_encoding=UTF8&psc=1">VBAエキスパート公式テキスト Excel VBAスタンダード 田中 亨 </a></p> <p>テーブル操作とか仕事で使わなかったし、関数もそんなに使ってないので、<br /> どんなのが出るのかわかって良かったです。<br /> 知らないところはルーズリーフに手書きでまとめながら覚えようとしました。</p> <p>試験を受けたことでやっと「VLookUP」と「Index」と「Match」の使い方を覚えました。<br /> まとめて覚えないとどれがどれか分からなくなるのです。</p> <p>最終的には、<br /> 練習問題をやって、分からなかったところを覚える、というのが<br /> 私には向いていました。(テキストだけ見てても覚えられません。)</p> <h1 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h1> <p>今の環境をバネに<br /> こんな会社やめてやるー!!というモチベーションで</p> <h4 id="勉強がんばります!!"><a href="#%E5%8B%89%E5%BC%B7%E3%81%8C%E3%82%93%E3%81%B0%E3%82%8A%E3%81%BE%E3%81%99%EF%BC%81%EF%BC%81">勉強がんばります!!</a></h4> <p>ガンバル୧(⑉•̀ㅁ•́⑉)૭✧</p> Hata tag:crieit.net,2005:PublicArticle/17811 2021-12-03T08:41:57+09:00 2021-12-18T06:53:51+09:00 https://crieit.net/posts/Access-61a959c5dd610 Accessをやるぉ「メンサ会員 本気のACCESS入門講座!」 <p>以前、</p> <p>Excel VBAの話を書いていました</p> <p><a href="https://crieit.net/users/33hata33">私の記事一覧</a></p> <p>が、</p> <p>諸事情により(別で記載)</p> <p><strong>Access もっとがっつりやったるで!</strong></p> <p><strong>SQL もやったるで!!</strong></p> <p>と思い立ったので、がっつりしっかり勉強始めます(宣言)。</p> <hr /> <p><del>ちなみに「やるぉ」は「やるぞ」の入力に失敗しただけでs</del></p> <p><a href="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461a956680fdd8.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461a956680fdd8.jpg?mw=700" alt="image" /></a></p> <p>手始めに、</p> <p>1:25:29 もある動画を見ました。これとても良い動画です。<br /> 話しているのは女性です。聞きやすいです。</p> <p><a target="_blank" rel="nofollow noopener" href="https://youtu.be/8oyNsiqwCZ8">【Excel中級者向け】メンサ会員 本気のACCESS入門講座!理解してアクセスを使う データベースから学ぼう・Accessとは・テーブル設計・主キー・SQL・クエリ・リレーションシップ・フォーム</a></p> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/8oyNsiqwCZ8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <p>試しに見てみましたが、<br /> YouTube、想像以上に良いですねー。<br /> 概要を掴んで流れを把握するにはとても。</p> <p>というか前半は、知ってるよーという内容もあるので気を抜いて見つつ、<br /> しっかり見て学ぶ部分もありました。</p> <p>前に変な表示になって直せなかったのは、<br /> この設定直せばよかったのかとか、そういうことも知れました。<br /> (タブ表示じゃなくなって、直せなくなってた。なんだこの変な枠は?と思ってた。)</p> <p>この動画を見るまで、<br /> AccessのSQL文ってどこに書くのかも知らなかったのですが、</p> <p>さらに知りたいのはAccess VBAってどこからどう使うの?という点なので、<br /> さらに勉強していこうと思います(宣言)。</p> <hr /> <hr /> <p>Markdown、いまだに慣れません。いつもテキトーにやってるからですね...<br /> 見辛くてスミマセン...m(._.)m</p> <hr /> <p>ところで(広告に表示されていた)「中高年・・・」といえば彦摩呂を思い出すのですが彦摩呂じゃなくて、きみまろか、、</p> Hata tag:crieit.net,2005:PublicArticle/16383 2020-12-18T04:35:01+09:00 2021-12-03T08:55:42+09:00 https://crieit.net/posts/SE 社内SEに向いているのはこんな人(かもしれない)2020年振り返り記事 <h3 id="あばうとみー"><a href="#%E3%81%82%E3%81%B0%E3%81%86%E3%81%A8%E3%81%BF%E3%83%BC">あばうとみー</a></h3> <p>去年から田舎の小さな事業所(50名以下)で、<br /> プログラマー 兼社内SEみたいな仕事を <strong>パート</strong> でしている。<br /> 1年半ぐらい前から。(募集内容と違う職種で採用された)<br /> 何でも屋さんなのだけど、結果的に社内SEになってるんじゃ?と思ってそう名乗ることに。</p> <p>前の仕事でメンタルぶちのめされていたため、リハビリのつもりの仕事だった(週3日ぐらいならなんとか行けるだろうと思って応募した、PCを使う別の内容の募集だった)。</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/DCHysmZGsxY" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="パートですよパートですよ「パートさん」ですよ〜"><a href="#%E3%83%91%E3%83%BC%E3%83%88%E3%81%A7%E3%81%99%E3%82%88%E3%83%91%E3%83%BC%E3%83%88%E3%81%A7%E3%81%99%E3%82%88%E3%80%8C%E3%83%91%E3%83%BC%E3%83%88%E3%81%95%E3%82%93%E3%80%8D%E3%81%A7%E3%81%99%E3%82%88%E3%80%9C">パートですよパートですよ「パートさん」ですよ〜</a></h3> <p>(週2,3日契約だが最近は週3日というか週4日の時もある。出勤と在宅勤務と両方で。)<br /> (しかし規定時間以下なので雇用保険入ってない、もったいない、、やめても失業手当出ない、、)</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/yaFMfXgGSCw" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="パートだけど、やりたい放題(?)"><a href="#%E3%83%91%E3%83%BC%E3%83%88%E3%81%A0%E3%81%91%E3%81%A9%E3%80%81%E3%82%84%E3%82%8A%E3%81%9F%E3%81%84%E6%94%BE%E9%A1%8C%EF%BC%88%EF%BC%9F%EF%BC%89">パートだけど、やりたい放題(?)</a></h3> <p>仕事は主にプログラミングなはずだったのだが、PC関連のことは全部回ってくるし、<br /> PCに詳しい人は事業所内に他にいない。上司だけはちょっと詳しい。</p> <hr /> <p>これまで在宅勤務には対応していなかった、その事業所で仕事をしている。</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/sRvwgaFCQ6U" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="(事業所を)在宅勤務に対応させる!"><a href="#%EF%BC%88%E4%BA%8B%E6%A5%AD%E6%89%80%E3%82%92%EF%BC%89%E5%9C%A8%E5%AE%85%E5%8B%A4%E5%8B%99%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%95%E3%81%9B%E3%82%8B%EF%BC%81">(事業所を)在宅勤務に対応させる!</a></h3> <p>2020年は世の中が急激に在宅勤務推奨になっていった。<br /> なので職場でも、なんとか在宅勤務ができるようにしようと、上司と相談して進める事になった。<br /> 環境の準備と、従業員の教育の両方が必要だった。</p> <p>それと在宅勤務者が手が空いた時の、仕事の確保も。<br /> さらに上司は上層部や担当部署へのツール使用許可申請が必要となった。</p> <p>母体となる会社組織全体ではGsuiteが使われており、<br /> じゃあGoogle使い放題じゃん、となるはずなのだが...。</p> <p>事業所はほとんどが契約社員という名の3ヶ月更新の人々なので、使用制限があった。<br /> GmailはOKだが、GoogleドライブはNGというGsuiteの無駄遣い状態なのであった。<br /> (お金は払っているのに使える機能がかなり制限されている)</p> <p>今回在宅勤務をするにあたり、Googleドライブの許可申請を母体の会社の担当部署にしたが<br /> むげに却下されて、上司は戦意喪失してしまった。</p> <p>ただ、取引先がクラウドサービスを使っていたので、結局そこに間借りする形で、<br /> データのやり取りをすることになった。</p> <p>私は資料とチェックリストを作り、在宅で本業の手が空いた際にやってもらう仕事を考え、<br /> 会社で使っている独自ツールのプログラムを書き換え、在宅でも使えるように対応させて、<br /> もはやこれはパートの仕事ではないだろういう範疇で仕事を進めた。(コンサルぽいなぁと思いつつ)</p> <p>仕事で何かに対応するためにどうしたらいいのか?を考えるのは苦ではないので、<br /> 上層部とのミーティングで失意の上司を「大丈夫、(私がいるから)大丈夫」と励ましながら(?)<br /> 緊急事態宣言明けぐらいだったかな、、在宅勤務に次々人を送りこんだ。</p> <p>業務では社内にあるサーバーを使っているため、かつ、データを印刷する必要があるため、<br /> 【全員】の在宅勤務は叶わないが、なんとか出勤者を減らすことができた。</p> <p>その間もその後も私は会社に出ていた。在宅勤務の人が増えると、<br /> そのために会社でやらなければいけないことが増えるので、出勤する必要があるのだ。</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/XIC0Qmd3bEs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="在宅勤務に向いてない(私)"><a href="#%E5%9C%A8%E5%AE%85%E5%8B%A4%E5%8B%99%E3%81%AB%E5%90%91%E3%81%84%E3%81%A6%E3%81%AA%E3%81%84%EF%BC%88%E7%A7%81%EF%BC%89">在宅勤務に向いてない(私)</a></h3> <p>それに気づいたことがあるのだが、私は在宅勤務があまり向いていないようだ。<br /> 会社の中の状況が見えない、上司が忙しくしているのか何なのかわからない。<br /> 文字で連絡してもレスポンスが遅いと仕事が進められないこともある。<br /> (確認しなくていい作業なら進められるけど。)</p> <p>そういう時に私はネガティブに捉える性格なのだ。<br /> 自分が放っておかれているように感じてしまう。</p> <p>在宅勤務、向いてないなーと思った。<br /> 基本、テレビ電話もネット面接もきらいで、<br /> 別に人と話すのが好きなわけでも会いたいわけでもないが<br /> 面接なら対面の方が(めっちゃ緊張するけど)マシ。<br /> 仕事も対面で状況を見ながら質問しながら進めたい。<br /> (コーディングするだけの時は在宅でも大丈夫。)</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/VuKbbppLIVQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="人と仕事をするの楽しい(?)"><a href="#%E4%BA%BA%E3%81%A8%E4%BB%95%E4%BA%8B%E3%82%92%E3%81%99%E3%82%8B%E3%81%AE%E6%A5%BD%E3%81%97%E3%81%84%EF%BC%88%EF%BC%9F%EF%BC%89">人と仕事をするの楽しい(?)</a></h3> <p>自分だけで仕事を抱え込みたいわけではないので、<br /> できることはどんどん空いている人がいれば頼むようにしている。<br /> 説明をしないといけないが、頼めばやってくれる人ばかりだ。<br /> いろんな人と話をする。お願いをする。</p> <p>お願いして喜んで引き受けてくれたのに忘れていたり(笑)、<br /> 終わった報告をしてくれなかったり、途中までで止まっていたり、<br /> いろんな人がいるけど、私はそれを面白いと思えている(今のところ)。</p> <p>仕事を頼まれることがいやじゃないから、基本的には相手もそうだろうと思えている。<br /> いやだったら、やらなくていいからね!と伝えている(つもり)。</p> <p>やったことがないから、と、ドキュメント作成で自信なさそうにいう人がいる。<br /> やったことないことを業務でやらせてもらえるなんてラッキー!!と思う私なので<br /> そうか、この人はこれはやりたくないのかな?と認識する。</p> <p>たとえドキュメント作成だって、実務経験を積めたり、<br /> わからないこと検索して調べながら資料を作れる機会なんて、<br /> (そのことに興味があるなら、)チャンスだと思う。</p> <p>どこかでその人の才能とか発揮されたらいいなと思って、<br /> あれこれいろんな人に頼んでみる。</p> <p>新しいものに意欲的な人もいる。<br /> VBAとはいえさすがにコーディングは一朝一夕にはできないので、<br /> できそうなところから頼んでみる。<br /> 本業があいた時にサイトで勉強しているらしい。えらい。</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/To9eRCMCX_k" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="コミュニケーション取りながら仕事するの楽しい♪"><a href="#%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%8F%96%E3%82%8A%E3%81%AA%E3%81%8C%E3%82%89%E4%BB%95%E4%BA%8B%E3%81%99%E3%82%8B%E3%81%AE%E6%A5%BD%E3%81%97%E3%81%84%E2%99%AA">コミュニケーション取りながら仕事するの楽しい♪</a></h3> <p>あれ、私ってそういうタイプだっけ?と<br /> 思い返してみると<br /> まさにそうだった。</p> <p>役割があるところで人にいろいろお願いしたり、仕事の話をしたりするのは好きだ。<br /> 自分の個人的な話をしたり、他人の個人的な話を聞くのはきらい。(=相手によっては聞く方はきらいではないけど、エンドレスでおしゃべりが止まらない人は苦)。</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/nz-b9hKWYJg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="いろんな意味で、なかなか難しい!"><a href="#%E3%81%84%E3%82%8D%E3%82%93%E3%81%AA%E6%84%8F%E5%91%B3%E3%81%A7%E3%80%81%E3%81%AA%E3%81%8B%E3%81%AA%E3%81%8B%E9%9B%A3%E3%81%97%E3%81%84%EF%BC%81">いろんな意味で、なかなか難しい!</a></h3> <p>人に頼むのは難しいし、教え方もわからない。<br /> コーディングは自分は教わってないし、教わってできるようになるのかな?っていう疑問がある。<br /> そして、自分が当たり前にやっていることは、これまで勉強していた積み重ねが役立っているのだなぁと気づく。</p> <p>わからないなりに書籍を何度も読んで、ちっとも進んでいる気がしないのにJavaとか勉強して、<br /> 高い資格試験受けたり、めんどくささになんとか打ち勝って国家資格受けたり(申し込んだのに受けない人の多さよ、もう試験に出席できたらそれだけで半分勝ち)<br /> ドットインストールやプロゲートやったり、<br /> それでもちっともできるようになった気がしない。あれもこれもまだ何もわかってない。</p> <p>VBAさえ、何も調べずにサクサク書けるわけではない、どう書くんだっけ?と調べながら書いてる。</p> <p>既存の業務でのエクセルの使い方を見て、なんて非効率なんだ、と思うこともある。<br /> (それを言うと直す事になるのは私なのだけど、言う)</p> <p>社内業務でよかったなと思うのは締め切りがあまりない事。<br /> なるべく早く、と言われる事もあるし、年末年始はいろいろ準備しないといけないのだけど。</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/ppV1Ju0o26U" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="スパルタ(自分のためにPCスキルを...)"><a href="#%E3%82%B9%E3%83%91%E3%83%AB%E3%82%BF%EF%BC%88%E8%87%AA%E5%88%86%E3%81%AE%E3%81%9F%E3%82%81%E3%81%ABPC%E3%82%B9%E3%82%AD%E3%83%AB%E3%82%92...%EF%BC%89">スパルタ(自分のためにPCスキルを...)</a></h3> <p>今の職場で、後から入ったのに偉そうにしている私(偉そうにしているつもりはないが、先輩に仕事を頼んでいるのは偉そう?)。<br /> パソコンのことで困ったことがあると、解決を求められる。頼られる。<br /> そこで堂々と対応しているから、偉そうに見える?かな?かも?</p> <p>今の職場の人にたちのPCスキルはあまりなかった。<br /> だけど在宅勤務になったらある程度は自分で解決できないといけない。<br /> 私の作った「在宅勤務をする前にできるようになっておくこと、理解しておくこと」のチェックリストは50項目を超えていた。<br /> そのせいかはわからないけど、全体的にPCの基本スキルは上がってきていると思う。<br /> どうだろう。。。多分。。。</p> <p>さらに在宅勤務ではなく出社の人にも、自分のPCの面倒がある程度自分で見られるように、と、<br /> 資料を作っては配布し、各自に作業をお願いしている。<br /> わからなかったらわかる人に聞いてね!と伝えつつ(こんなにフランクな表現ではないが)、<br /> 徐々に、お願い事を増やしていっている。</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/Sjl4KADwv-0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="質問されることといえば、"><a href="#%E8%B3%AA%E5%95%8F%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A8%E3%81%84%E3%81%88%E3%81%B0%E3%80%81">質問されることといえば、</a></h3> <p>私がいる時は聞いてくれていいよ、とは言っているが、<br /> 飛んでくる質問は、<br /> (WindowsUpdateをしたら)<br /> <strong>「再起動してくださいって出たんですけど、どうすればいいですか?」</strong><br /> とか、<br /> そういうのもあって(この質問をしてくれたのは1人だけではない)、、、<br /> なかなか、、、まあ、、、経験積みましょう、、、という、、、</p> <p><strong>「PCにログインできません!」</strong><br /> CapsLockがオンになってます、って画面に書いてあるよ、、、</p> <p>なんのことかわかりませんってそうですかそうですよね...</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/LfgfgJFetDQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="休みの日でも何かあったら..."><a href="#%E4%BC%91%E3%81%BF%E3%81%AE%E6%97%A5%E3%81%A7%E3%82%82%E4%BD%95%E3%81%8B%E3%81%82%E3%81%A3%E3%81%9F%E3%82%89...">休みの日でも何かあったら...</a></h3> <p>言ってください、とは伝えてたけど<br /> (私が休みの日でも緊急の困りごとがあったら知らせていいよと)</p> <p>「Microsoft はお客様のプライバシーを尊重しています」</p> <p>という画面が出たけど<br /> どうすればいいですか?</p> <p>という、緊急の質問。。。orz</p> <p><strong>orz</strong></p> <h3 id="orz"><a href="#orz">orz</a></h3> <p>「これが出てエクセル使えなくて困ってます。」<br /> 「(その後)はい、いいえどっち選べばいいですか。」</p> <p>・・・なるほどね、わからないよね、<br /> どっちでもいいよ、後から変えられるし(涙)。</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/kT_cpnvZuqw" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="がんばっ..."><a href="#%E3%81%8C%E3%82%93%E3%81%B0%E3%81%A3...">がんばっ...</a></h3> <p>これから生きていく上で、<br /> PCの基本スキルはある程度必要。<br /> 大きな会社なら管理部がやってくれるとはいえ、</p> <p>わからない知らないで損すること多くなるよ。<br /> そんな時代にもうなりつつある。</p> <p>だからせめて少しでも慣れておこう。<br /> せっかく仕事で使ってるんだから。</p> <p><strong>そう、みんなの幸せを願う社内SEのパートさんなのでした。</strong></p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/XVKJtqtRMzQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <hr /> <h3 id="2020年総括"><a href="#2020%E5%B9%B4%E7%B7%8F%E6%8B%AC">2020年総括</a></h3> <p>これまで、「プログラミング大好きです!」と言っていたけど、<br /> 「自分の得意なことを役立てつつ、人とコミュニケーションして仕事を進めていくの、めっちゃ楽しいです!!」というのが本当のところなんだなーと、気付かされた一年でした。</p> <hr /> <p>余談。<br /> 今の事業所にいる人たち、みんな優しくて、いじめとか派閥もなくて、女性多いので基本的な会話が普通にできる、素敵な職場です。人間関係大事、天気の会話も大事。</p> <p>今まで男性が大多数の職場に居たので「基本的な会話スキル」が全然違うです...。仕事以前の問題。</p> <p>あと、私は深入りしないようにしている(≒脳内お花畑で仕事したい)ので、平和に見えるのはそれもあるかもしれない...?</p> <hr /> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/60EtMUUjNsk" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> Hata tag:crieit.net,2005:PublicArticle/15706 2020-02-03T05:49:23+09:00 2020-02-03T06:00:51+09:00 https://crieit.net/posts/VBA-6-7-8-Excel-VBA VBAをパーフェクトにマスターするシリーズ♪ 6章-7,8「モジュール」「パーフェクトExcel VBA」 <h2 id="■前回までの記事"><a href="#%E2%96%A0%E5%89%8D%E5%9B%9E%E3%81%BE%E3%81%A7%E3%81%AE%E8%A8%98%E4%BA%8B">■前回までの記事</a></h2> <p><a href="https://crieit.net/posts/VBA-Excel-VBA">VBAにもっと詳しくなろう♪ 「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-2-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 2章「式と値」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-3-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 3章「ステートメント」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-4-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 4章「フロー制御ステートメント」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-5-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 5章「プロシージャ」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-6-1-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 6章-1「モジュール」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-6-2-3-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 6章-2,3,4,5,6「モジュール」「パーフェクトExcel VBA」</a></p> <p>(前回の4,5,6は2,3と統合しました。)</p> <p>続きを書きました。<br /> VBAをパーフェクトにマスターするシリーズ♪<br /> 今回は「6章-7,8」で新しく知ったことと、思ったことを簡単にまとめました。</p> <p><strong>6章は分厚いので少しずつ進めていきたいと思います。。。</strong></p> <p>※これは学習記録です。<br /> 書籍の内容はあえて多くは載せていません。<br /> 大事なことも省いていますので、詳細につきましては書籍をご覧ください。</p> <h2 id="■6章「モジュール」プログラムを部品ごとにまとめる"><a href="#%E2%96%A06%E7%AB%A0%E3%80%8C%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%80%8D%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E9%83%A8%E5%93%81%E3%81%94%E3%81%A8%E3%81%AB%E3%81%BE%E3%81%A8%E3%82%81%E3%82%8B">■6章「モジュール」プログラムを部品ごとにまとめる</a></h2> <h3 id="6-7  クラスモジュール"><a href="#6-7+%E3%80%80%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB">6-7  クラスモジュール</a></h3> <p><strong>6-7-1 クラスモジュールとは</strong></p> <blockquote> <p>クラスモジュールは、独自のオブジェクトを作成するためのモジュールです。</p> </blockquote> <p><strong>6-7-2 クラスとインスタンス</strong></p> <blockquote> <p>シートモジュール、ブックモジュールは既に存在しているオブジェクトに機能や処理を追加することができるモジュールでした。また、フォームモジュールは、ユーザーフォームの挿入を行うと同時に追加されますので、</p> </blockquote> <p>クラスモジュールは、上記と異なり、オブジェクトを作るまでは実体がありません。</p> <p>使い方としては、クラスモジュールを追加すると、<br /> そのクラスを型として使えるようになるので、SETするときにNewします。</p> <p><strong>6-7-3 クラスメンバーの定義</strong></p> <p>クラスには独自のプロパティやメソッドを追加できます。<br /> クラスを指定してオブジェクトを作ると(SETしてNewすると)、そのオブジェクトに対して、設定したプロパティもメソッドも使えるようになります。</p> <p><strong>6-7-4 クラスのイベントプロシージャ</strong></p> <blockquote> <p>VBAではクラスで使用できるイベントが2つ用意されています。</p> <p>Initialize インスタンスが生成されたとき(コンストラクタ)<br /> Terminate インスタンスへの参照がされなくなったとき(デストラクタ)</p> </blockquote> <p>このシリーズの学習記録を書いている途中で「クラスモジュール便利やん!使ったほうがいいやん!」って思ったことがあったのですが、なぜでしたっけ。(少し間が空いて忘れてしまった)</p> <p>今ある記憶では「クラスモジュールを作って活用すれば、プログラム全体に対してのPublicなメソッド?プロシージャ?関数?をむやみに増やさなくて済む=プログラムの修正や追加するときに影響範囲を絞り込みやすい」という感じなのですが</p> <p>そレほど多機能なシステムを作るのでなければ、なるべく関数?処理?プロシージャ?はPrivateにすることで、ある程度は対応できそうです。<br /> でも重複して同じコードがあちこちに書かれるのは避けたいですね(コードが増えるとその分、メンテナンスも大変になるので)</p> <p>クラスモジュールを使って、「この機能に対してのPublicな関数?プロシージャ?はこれを使いましょう」という限定ができるのは、良いと思いますが、</p> <p>ただ、(例えば初心者が)作るときにそこまで考えて作れるかな?というとちょっと疑問です。<br /> ある程度慣れてきたらそういう使い方に変えていく、とかじゃないと、<br /> 誰にも教わらずに、本だけで基礎を学んでも、<br /> それを実務で活用しようとする段階で、「まず、クラスを作って分けなければ」とやろうとしても、<br /> わからなくなって、何も進まなくなるような気もします。<br /> それともすんなり、この場合はこうしたほうがいい、とか、わかるものなのでしょうか。</p> <p>そういえば今、実務で扱っているVBAに一部、謎のクラスモジュールが存在していて、<br /> どこで使ってるんだこれ・・・というものがあるのですが、<br /> それを解析しないとですね・・・。</p> <p>VBAの「クラスモジュール」の使い方は、ここで基本がわかったので、<br /> クラスモジュールを恐れずに、解析していきたいと思います。</p> <h3 id="6-8  イベントを活用する"><a href="#6-8+%E3%80%80%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%99%E3%82%8B">6-8  イベントを活用する</a></h3> <p><strong>6-8-1 イベントに応答するオブジェクト変数を宣言する</strong></p> <blockquote> <p>シートやブックで発生するイベントで動作するイベントプロシージャは、その属するオブジェクトモジュールであるシートモジュールまたはブックモジュールに記述する必要がありました。<br /> しかしマクロの実行中に新規作成したシートやブックに対しては、そのモジュールにコードを記述することは叶いません。</p> <p>また、ユーザーフォームの複数のコントロールに同じイベントで同じ処理を追加したい場合、全てのコントロールについて同じイベントプロシージャを定義するのは明らかに冗長ですから、共通化したいと考えるでしょう</p> <p>そのようなときに、WithEventsキーワードを使うことができます。<br /> WithEventsキーワードを付与して宣言したオブジェクト変数は、イベントに応答するようになります。</p> </blockquote> <p>Private WithEvents varname [As type]</p> <blockquote> <p>変数varname に設定された固有オブジェクト型typeのオブジェクトは、その定義されているイベントに応答するようになり、そのイベントの発生をきっかけとしたイベントプロシージャを定義することができるようになります。</p> </blockquote> <p>具体的なコードの例として、マクロ実行中に追加したシートに対して、イベントが発生した時の処理を記述してあります。これは知りませんでした。便利そうです。<br /> ですが、共通化するときにはどうやって使うのだろう(具体的な記述のイメージがわかない)</p> <p><strong>6-8-2 独自のイベントを定義する</strong></p> <blockquote> <p>作成したクラスに独自のイベントを定義して使用することができます。</p> <p>クラス独自のイベントを定義するEventステートメント</p> </blockquote> <p>[Public] Event name [(arglist)]</p> <blockquote> <p>定義したイベントを発生させるRaiseEventステートメント</p> </blockquote> <p>RaiseEvent name [(argumentlsit)]</p> <p>具体的なコードの例が記述されています。<br /> 説明をされてからコードを見ると、やろうとしていることはわかりますが<br /> 何の説明もなくこのコードだけ書いてあったら、読むの辛いなあと思いました。<br /> (つまりコメントをしっかり書いておかないと、何をしているのかわからなくなりそう)</p> <p>確かに、コードは読めなくはないのだけど、実際に使うときは、なるべく独自イベント使わないで欲しいなあと願ってしまうのでした・・・。</p> <p>VBA、いろいろできるということを知ってとても勉強になるけど、<br /> 知ってても、できればあまり凝ったことをやらないでほしい(後からのメンテナンスが大変だから)</p> <p>と思ってしまうのは、いけないことでしょうか・・・。<br /> 基本的なところをしっかり書けるようになれば、後から読む人も(たとえそれが未来の自分であっても) 助かるので、<br /> 基本的なところはしっかり書けるようになってほしい(自分を含め)。</p> <p>でも何でもかんでも独自で作らないでほしい、一生自分でメンテナンスするなら止めないけど、<br /> 後から見た人が直すの大変よ、、、と思ってしまう私でした。</p> <p>使うなら、どうしてもその独自の方法しかない?それ以外の方法ない?っていうのを、検討してからにしてほしい・・・。</p> <p>(7章の最後までは書きたいので)続きます</p> <h2 id="▼著者サイト"><a href="#%E2%96%BC%E8%91%97%E8%80%85%E3%82%B5%E3%82%A4%E3%83%88">▼著者サイト</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba/">書籍「パーフェクトExcel VBA」発売についてのお知らせ </a></p> <h2 id="▼Amazonリンク"><a href="#%E2%96%BCAmazon%E3%83%AA%E3%83%B3%E3%82%AF">▼Amazonリンク</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297108755/ref=cm_sw_r_tw_dp_U_x_Jab-DbGJPCAZ1">パーフェクトExcel VBA (PERFECT SERIES)   高橋 宣成著</a></p> Hata tag:crieit.net,2005:PublicArticle/15693 2020-01-23T05:41:01+09:00 2020-02-03T04:45:17+09:00 https://crieit.net/posts/VBA-6-2-3-Excel-VBA VBAをパーフェクトにマスターするシリーズ♪ 6章-2,3,4,5,6「モジュール」「パーフェクトExcel VBA」 <h2 id="■前回までの記事"><a href="#%E2%96%A0%E5%89%8D%E5%9B%9E%E3%81%BE%E3%81%A7%E3%81%AE%E8%A8%98%E4%BA%8B">■前回までの記事</a></h2> <p><a href="https://crieit.net/posts/VBA-Excel-VBA">VBAにもっと詳しくなろう♪ 「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-2-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 2章「式と値」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-3-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 3章「ステートメント」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-4-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 4章「フロー制御ステートメント」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-5-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 5章「プロシージャ」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-6-1-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 6章-1「モジュール」「パーフェクトExcel VBA」</a></p> <p>続きを書きました。<br /> VBAをパーフェクトにマスターするシリーズ♪<br /> 今回は「6章-2,3,4,5,6」で新しく知ったことと、思ったことを簡単にまとめました。</p> <p><strong>6章は分厚いので少しずつ進めていきたいと思います。。。</strong></p> <p>※これは学習記録です。<br /> 書籍の内容はあえて多くは載せていません。<br /> 大事なことも省いていますので、詳細につきましては書籍をご覧ください。</p> <h2 id="■6章「モジュール」プログラムを部品ごとにまとめる"><a href="#%E2%96%A06%E7%AB%A0%E3%80%8C%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%80%8D%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E9%83%A8%E5%93%81%E3%81%94%E3%81%A8%E3%81%AB%E3%81%BE%E3%81%A8%E3%82%81%E3%82%8B">■6章「モジュール」プログラムを部品ごとにまとめる</a></h2> <p>標準モジュールとオブジェクトモジュールの違いは・・・</p> <p>標準モジュール以外が、オブジェクトモジュールのようです(シートモジュール、ブックモジュール、フォームモジュール、クラスモジュール)。</p> <p>それぞれできることとできないことがあります。</p> <h3 id="6-2  標準モジュールとオブジェクトモジュール"><a href="#6-2+%E3%80%80%E6%A8%99%E6%BA%96%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB">6-2  標準モジュールとオブジェクトモジュール</a></h3> <p><strong>6-2-1 Meキーワード</strong></p> <p>オブジェクトモジュールでは、Meキーワードが使えます。そしてこのMeは省略できます。</p> <blockquote> <p>一方で、標準モジュールについてのオブジェクトの省略は複雑です。省略されたとみなされるプロパティがどのプロパティなのか、またActiveSheetプロパティやActiveWorkbookプロパティが、どのオブジェクトを指すのか、これらについてはコードの文脈や実行時の状態によって異なるからです。</p> </blockquote> <p>都合により、オブジェクトが固定されるシートモジュール、ブックモジュールはなるべく使いたくないのですが、クラスモジュールに辿り着くためにも、順番に学び進めていきたいと思います。</p> <p><strong>6-2-2 宣言できるメンバー</strong></p> <p>オブジェクトモジュールでは定数(とユーザー定義型)は宣言できません。</p> <blockquote> <p>パブリックレベルの定数、ユーザー定義型及び列挙型は、常に標準モジュールに記述するという方針でよいでしょう。</p> </blockquote> <p>(ユーザー定義型と列挙型はそもそも使っていないというか使えていないです、、、)</p> <p><strong>6-2-3 イベントとイベントプロシージャ</strong></p> <blockquote> <p>Excel VBA では、Workbook、Worksheet、UserFormなどのオブジェクトに対して、ユーザーがすぐに利用できるように、たくさんのイベントがあらかじめ定義されています。</p> <p>あらかじめ用意されているイベントを使用するだけでなく、独自のイベントを定義することができます。<br /> これらイベントについての発展的な活用については6-8で解説します。</p> </blockquote> <p><strong>6-2-4 オブジェクトモジュールの役割</strong></p> <blockquote> <p>シートやブックに関連したコードはシートモジュールやブックモジュールを使うとして、それ以外のコードはオブジェクトに関連しませんから、結果的にほとんどのコードを標準モジュールに記述することになってしまわないでしょうか?<br /> いえ、オブジェクトがないなら作ってしまえばよいのです。それを実現するのがクラスモジュールです。</p> <p>続く節では、オブジェクトモジュールに具体的にメンバーを追加する方法、すなわちプロパティ、メソッド、イベントの定義の方法について解説を進めていきます。</p> </blockquote> <h3 id="6-3  プロパティとメソッドの定義"><a href="#6-3+%E3%80%80%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%81%A8%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%AE%E5%AE%9A%E7%BE%A9">6-3  プロパティとメソッドの定義</a></h3> <p><strong>6-3-1 オブジェクトのプロパティとメソッド</strong></p> <blockquote> <p>オブジェクトのプロパティとは、オブジェクトへのデータの設定、オブジェクトからのデータの取得のいずれかの機能、または両方の機能のことをいいます。</p> </blockquote> <p>プロパティを作成する方法<br /> ・モジュールレベル変数<br /> ・Property Let/Setプロシージャ<br /> ・Property Getプロシージャ</p> <blockquote> <p>オブジェクトに対して処理を実行するためのメンバーがメソッドです。<br /> オブジェクトにメソッドを追加するには、以下のどちらかのプロシージャをオブジェクトモジュールに宣言します。</p> </blockquote> <p>・Subプロシージャ<br /> ・Functionプロシージャ</p> <p><strong>6-3-2 パブリック変数によるプロパティ</strong><br /> <strong>6-3-3 プライベート変数によるプロパティ</strong></p> <p>プライベートプロパティは他のモジュールからアクセスできないので、<br /> 以降のプロシージャを使用して読み書きします。</p> <p><strong>6-3-4 Property Let/Setプロシージャによるプロパティの設定</strong></p> <p>書き込み用。</p> <p><strong>6-3-5 Property Getプロシージャによるプロパティの取得</strong></p> <p>読み込み用。</p> <blockquote> <p>設定または取得のいずれかに制限をかけたいときや、なんらかの処理を伴わせたいときは、こちらの手法を選択することになります。</p> </blockquote> <p>この辺は使えるようになると便利かなと思います。<br /> VBAでこのようなプロシージャが使えるということを、この本を読むまで知りませんでした。</p> <p><strong>6-3-6 Subプロシージャによるメソッドの定義</strong><br /> <strong>6-3-7 Functionプロシージャによるメソッドの定義</strong><br /> <strong>6-3-8 プロパティとメソッドを追加する方法の指針</strong></p> <p>Functionで戻り値を取得できるのに、なぜProperty Getもあるの?<br /> →方針を決めておいて(できるだけ)使い分けるようにしましょう。</p> <h3 id="6-4  シートモジュール"><a href="#6-4+%E3%80%80%E3%82%B7%E3%83%BC%E3%83%88%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB">6-4  シートモジュール</a></h3> <p><strong>6-4-2 シートのオブジェクト名とシート名</strong></p> <p>シートには、Excelのタブに表示されている「シート名」とは別に、「オブジェクト名」があります。シート名は誰でも変更することができるので、プログラムを書くときには「オブジェクト名」を使った方が良いでしょう。</p> <p>書籍では「シートモジュールでできることはシートモジュールに書いて、標準モジュールをコンパクトに保ちましょう。」というのが方針のようです。</p> <p>標準モジュールは影響(させることのできる)範囲が広いので、そのシートでしか操作しないこと、またそのシートでのイベント処理は、シートモジュールに書きましょう、というのが基本のスタンスです。</p> <p>(余談ですが、私の今関わっている仕事では、ある目的があって、これの逆をしようとしています。いつでも使えるたった一つの正解はないので、状況によってその都度、最適解を探すのがよいかと思います。)</p> <h3 id="6-5  ブックモジュール"><a href="#6-5+%E3%80%80%E3%83%96%E3%83%83%E3%82%AF%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB">6-5  ブックモジュール</a></h3> <p><strong>6-5-3 ブックモジュールの使用</strong></p> <p>ブックモジュールのイベント処理については、11章で紹介されます。</p> <h3 id="6-6  ユーザーフォーム"><a href="#6-6+%E3%80%80%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0">6-6  ユーザーフォーム</a></h3> <p>**6-6-6 タブオーダー*</p> <p>ユーザーフォームを右クリックして、「タブオーダー」を選ぶと、まとめて順番を変更することができます。</p> <p>し・り・ま・せ・ん・でした!!</p> <p>今まで、プロパティウィンドウの「TabIndex」をちまちまと変えていました。</p> <p>次はいよいよ待望のクラスモジュールです!</p> <p>続く。</p> <h2 id="▼著者サイト"><a href="#%E2%96%BC%E8%91%97%E8%80%85%E3%82%B5%E3%82%A4%E3%83%88">▼著者サイト</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba/">書籍「パーフェクトExcel VBA」発売についてのお知らせ </a></p> <h2 id="▼Amazonリンク"><a href="#%E2%96%BCAmazon%E3%83%AA%E3%83%B3%E3%82%AF">▼Amazonリンク</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297108755/ref=cm_sw_r_tw_dp_U_x_Jab-DbGJPCAZ1">パーフェクトExcel VBA (PERFECT SERIES)   高橋 宣成著</a></p> Hata tag:crieit.net,2005:PublicArticle/15680 2020-01-14T08:33:35+09:00 2020-01-14T16:34:31+09:00 https://crieit.net/posts/ExcelVBA 「ExcelVBAを実務で使い倒す技術」ノウハウ!紹介 <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4798049999">ExcelVBAを実務で使い倒す技術 高橋宣成著</a>!</p> <p><a href="https://crieit.now.sh/upload_images/f76b2612063083f328d8566e47af8e555e1cec12a23d3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f76b2612063083f328d8566e47af8e555e1cec12a23d3.png?mw=700" alt="book.png" /></a></p> <p>Amazonの「なか見!検索」で書籍中身の一部が見られます。</p> <h3 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h3> <p>先日「ExcelVBAを実務で使い倒す技術」という本を買いました。<br /> 会社でVBAを使っている方向けのタイトルですが、そうでなくても役立ちます。<br /> どういうところに気を付ければ、より使いやすくなるか、ポイントが具体的に書かれています。</p> <p>今回は、特にとても大事だと思った点を、いくつかピックアップして紹介したいと思います。<br /> 合わせて著者サイトにリンクを貼りました。サイトでも詳しく掲載されています。</p> <h3 id="1-2 今すぐに見直すべきVBEの設定とは"><a href="#1-2%E3%80%80%E4%BB%8A%E3%81%99%E3%81%90%E3%81%AB%E8%A6%8B%E7%9B%B4%E3%81%99%E3%81%B9%E3%81%8DVBE%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%A8%E3%81%AF">1-2 今すぐに見直すべきVBEの設定とは</a></h3> <p>・VBAのメニューの「ツール」→「オプション」で開く「オプション」ウィンドウの<br /> 「エディターの設定」タブで、分類コードごとの色を、見やすくなるように設定しましょう。</p> <p>▼参考▼<br /> <a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/excel-vba-vbe-syntax-highlight/">【エクセルVBA】VBEの背景色や文字色を変更して画面を見やすくしよう</a></p> <h3 id="1-3 コメントブロックのアクセスキーを設定する"><a href="#1-3%E3%80%80%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%AD%E3%83%BC%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B">1-3 コメントブロックのアクセスキーを設定する</a></h3> <p>コメントにするときにシングルクォーテーションを付けたり外したりしますが、<br /> キーボードで簡単にオンオフできるように設定しておきましょう。</p> <p>「コメントブロック」「非コメントブロック」のアイコンに、アクセスキーを設定します。</p> <p>▼参考▼<br /> <a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/excel-vba-vbe-comment-shortcut-key/">【エクセルVBA】VBEにコメントブロックのショートカットキーを設定する方法 </a></p> <h3 id="1-4 自動メンバー表示で「打たずに打つ」"><a href="#1-4%E3%80%80%E8%87%AA%E5%8B%95%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%81%A7%E3%80%8C%E6%89%93%E3%81%9F%E3%81%9A%E3%81%AB%E6%89%93%E3%81%A4%E3%80%8D">1-4 自動メンバー表示で「打たずに打つ」</a></h3> <p>(1) オブジェクトに続けて、「.(ピリオド)」でメンバー候補を表示<br /> (2) ショートカットキー「Ctrl」+「Space」で、メンバー候補をいつでも表示</p> <p><strong>・自動メンバー表示が使えるようにコードを書く</strong></p> <p>Worksheet(Index)<br /> Sheets(Index)<br /> Cells([RowIndex],[ColumnIndex])<br /> 上記の場合は、メンバー候補が表示されないので、<br /> 一行で書くことよりも、メンバー表示が使えるようにコードを書くことをこころがけましょう。</p> <p>▼参考▼<br /> <a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/excel-vba-vbe-auto-member-list/">【エクセルVBA】初心者にとっても便利なVBEの自動メンバー表示とその使い方 </a></p> <h3 id="1-5 マスターしておくべきVBEのショートカットキー"><a href="#1-5%E3%80%80%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%B9%E3%81%8DVBE%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC">1-5 マスターしておくべきVBEのショートカットキー</a></h3> <p>以下のようなショートカットキーの設定があります。</p> <p>前のプロシージャに移動<br /> 次のプロシージャに移動<br /> モジュールの先頭に移動</p> <p>前の単語に移動<br /> 次の単語に移動<br /> 単語のカーソル以前を選択<br /> 単語のカーソル以後を選択</p> <p>・変数またはプロシージャの定義の表示</p> <p>定義の表示 Shift + F2<br /> 元の位置へ移動 Ctrl + Shift + F2</p> <p>▼参考▼<br /> <a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/excel-vba-vbe-shortcut-key-list/">【エクセルVBA】最初っから知っておきたいVBEのショートカットキーまとめ </a></p> <h3 id="6-5 変数はどこでどのように宣言すべきか"><a href="#6-5%E3%80%80%E5%A4%89%E6%95%B0%E3%81%AF%E3%81%A9%E3%81%93%E3%81%A7%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E5%AE%A3%E8%A8%80%E3%81%99%E3%81%B9%E3%81%8D%E3%81%8B">6-5 変数はどこでどのように宣言すべきか</a></h3> <blockquote> <p> プロシージャで使用する変数の宣言を、プロシージャ冒頭で全て行う人がいますが、必ずしもそれが正しい訳ではありません。<br />  最初にすべてを宣言すると、そのプロシージャの読み始めから全ての変数を意識する必要がでてきます。<br />  しかし、使用する直前で変数宣言すれば、必要な時に意識すれば良いことになりますし、素早く型宣言も確認ができ、稼働区政に良い影響を及ぼすことが多いと言えます。</p> </blockquote> <p>宣言は使用する直前に書いてある方が、コードがとても読みやすいです。</p> <h3 id="7-3 定数・列挙型でマジックナンバーを避ける"><a href="#7-3%E3%80%80%E5%AE%9A%E6%95%B0%E3%83%BB%E5%88%97%E6%8C%99%E5%9E%8B%E3%81%A7%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%E3%83%8A%E3%83%B3%E3%83%90%E3%83%BC%E3%82%92%E9%81%BF%E3%81%91%E3%82%8B">7-3 定数・列挙型でマジックナンバーを避ける</a></h3> <p>コード内にベタ打ちで書かれた数値を「マジックナンバー」といいます。<br /> コード内に直接数値が書かれていると、都度「これは何を表している数字?」と考えないといけないので、可読性が低下します。<br /> なのでなるべく避けましょうという話です。</p> <h2 id="第8章 VBAは個人作業のみならず「チーム」にも革命をもたらす"><a href="#%E7%AC%AC8%E7%AB%A0%E3%80%80VBA%E3%81%AF%E5%80%8B%E4%BA%BA%E4%BD%9C%E6%A5%AD%E3%81%AE%E3%81%BF%E3%81%AA%E3%82%89%E3%81%9A%E3%80%8C%E3%83%81%E3%83%BC%E3%83%A0%E3%80%8D%E3%81%AB%E3%82%82%E9%9D%A9%E5%91%BD%E3%82%92%E3%82%82%E3%81%9F%E3%82%89%E3%81%99">第8章 VBAは個人作業のみならず「チーム」にも革命をもたらす</a></h2> <h3 id="8-1 VBAはチームの資産にするべき"><a href="#8-1%E3%80%80VBA%E3%81%AF%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AE%E8%B3%87%E7%94%A3%E3%81%AB%E3%81%99%E3%82%8B%E3%81%B9%E3%81%8D">8-1 VBAはチームの資産にするべき</a></h3> <p><strong>・あなたのチームを最大に苦しめ得るリスク</strong></p> <blockquote> <p>あなたがVBAを使いこなし周りに貢献をし続けるほど、あなたのチームを最大限に苦しめる、「とあるリスク」が高まっていくことになります。</p> </blockquote> <p>さて、、、それは何かわかりますか?</p> <p>ふふふ。</p> <p><strong>・VBAをチームで維持管理するための2つの方針</strong></p> <blockquote> <p>まず、最も望ましいのは<br /> <strong>(1)VBAを複数人で担当する</strong></p> <p>複数人体制がどうしても難しい場合は、次点の策として<br /> <strong>(2)外部のサポートを前提に、ドキュメント等を整備・共有しておく</strong></p> <p>・<strong>リーダブルコードでコードを記述しておくこと</strong><br /> ・<strong>ドキュメントが整備され、その存在と内容がチームメンバーに共有されていること</strong></p> <p>VBAをチームの資産とすることを怠ることで、せっかく作ったVBAがブラックボックスと化し、さらにはお蔵入りになってしまうということが、ビジネスの現場では実際に頻発してしまっています。<br /> あなた自身が脱初級を達成したとしても、生み出したVBAがお荷物になってしまうのであれば、そんな悲しいことはありません。</p> </blockquote> <p>自分がコードを書いて機能を追加すればするほど、負の資産になるなんて、そんなのイヤです(涙<br /> ドキュメントが足りないので、がんばって作ります、すすすすす、、、</p> <h3 id="8-3 Gitでソースコードとそのバージョン楽に管理する"><a href="#8-3%E3%80%80Git%E3%81%A7%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A8%E3%81%9D%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E6%A5%BD%E3%81%AB%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B">8-3 Gitでソースコードとそのバージョン楽に管理する</a></h3> <p>あ。。。<br /> ううう。。。(壊れてきた私)</p> <p>バージョン管理をGitでしましょう、う、ぅぅぅ</p> <p>ファイルの置き場所は社内のサーバーでもいいですよね、やってみよう。</p> <h3 id="8-4 リファクタリングでチームのコードに一貫性を持たせる"><a href="#8-4%E3%80%80%E3%83%AA%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%A7%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E4%B8%80%E8%B2%AB%E6%80%A7%E3%82%92%E6%8C%81%E3%81%9F%E3%81%9B%E3%82%8B">8-4 リファクタリングでチームのコードに一貫性を持たせる</a></h3> <p><strong>・チームでコーディングルールを統一する</strong></p> <blockquote> <p>チーム内の複数人でVBAの開発をしている場合、コードの書き方を揃えるように努力しなければなりません。</p> <p>・コーディングルールを作成、更新する<br /> ・コーディングルールに沿ってリファクタリングをする</p> </blockquote> <p>会社内ではコーディング規約を作った方が良さそうです。<br /> 何も決まっていないと、一人で書く時も表記がゆれたり、書き方が変わってしまったりすることも起こりえます。</p> <p>リファクタリング大変だけど、がんばろう・・・</p> <p>▼参考▼<br /> 著者の会社で作ったコーディングガイドラインが公開されています。<br /> <a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/excel-vba-coding-guide-line/">エクセルVBAコーディングガイドライン【随時更新】</a></p> <h3 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h3> <p>勉強していると、痛い(対応できてない)こともあって、それを知って、知った直後は、うわあああと頭を抱えたくなるのですが、今のまま負の資産を増やしていきたくはないので、、、</p> <p>これからこの本を参考に社内で勉強会をする等して、<br /> 少しずつでも、社内でのコードのクオリティを上げていきたいと思います。(なんだこの社内で抱負を発表するようなまじめな記述は・・・でも本当にそう思います・・・)</p> <p>メンテナンスしやすいコードが書けるように、複数メンバーでも対応しやすいように、<br /> さらに学習を進めていきたいと思っています。</p> <p>うわあああ(叫び)と言いながら(涙)<br /> どうせやるなら、楽しく進めていきたいと思います。</p> <p>これはVBAについての話ですが、言語がVBAでなくても大切なことなので、身につけて損はないですよ。<br /> ふぁいとー!</p> <p><strong>▼書籍(楽天ブックス)はこちら</strong><br /> <a target="_blank" rel="nofollow noopener" href="https://hb.afl.rakuten.co.jp/hgc/1a255196.487c813e.1a255197.966371a9/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fbook%2F14714310%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Fbook%2Fi%2F18413544%2F&link_type=text&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJ0ZXh0Iiwic2l6ZSI6IjI0MHgyNDAiLCJuYW0iOjEsIm5hbXAiOiJyaWdodCIsImNvbSI6MSwiY29tcCI6ImRvd24iLCJwcmljZSI6MSwiYm9yIjoxLCJjb2wiOjEsImJidG4iOjEsInByb2QiOjB9" target="_blank" rel="nofollow noopener noreferrer" style="word-wrap:break-word;" >ExcelVBAを実務で使い倒す技術 [ 高橋宣成 ]</a></p> <p><strong>▼書籍(Amazon)はこちら</strong><br /> <a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4798049999">ExcelVBAを実務で使い倒す技術 高橋宣成著</a>!</p> Hata tag:crieit.net,2005:PublicArticle/15670 2020-01-09T10:28:40+09:00 2020-01-09T10:30:48+09:00 https://crieit.net/posts/VBA-6-1-Excel-VBA VBAをパーフェクトにマスターするシリーズ♪ 6章-1「モジュール」「パーフェクトExcel VBA」 <h2 id="■前回までの記事"><a href="#%E2%96%A0%E5%89%8D%E5%9B%9E%E3%81%BE%E3%81%A7%E3%81%AE%E8%A8%98%E4%BA%8B">■前回までの記事</a></h2> <p><a href="https://crieit.net/posts/VBA-Excel-VBA">VBAにもっと詳しくなろう♪ 「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-2-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 2章「式と値」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-3-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 3章「ステートメント」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-4-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 4章「フロー制御ステートメント」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-5-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 5章「プロシージャ」「パーフェクトExcel VBA」</a></p> <p>続きを書きました。<br /> VBAをパーフェクトにマスターするシリーズ♪<br /> 今回は「6章-1」で新しく知ったことと、思ったことを簡単にまとめました。</p> <p><strong>6章は分厚いので少しずつ進めていきたいと思います。。。</strong></p> <p>※これは学習記録です。<br /> 書籍の内容は、あえて多くは載せていません。<br /> 大事なことも省いていますので、詳細につきましては、ぜひ書籍をご覧ください。</p> <h2 id="■6章「モジュール」プログラムを部品ごとにまとめる"><a href="#%E2%96%A06%E7%AB%A0%E3%80%8C%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%80%8D%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E9%83%A8%E5%93%81%E3%81%94%E3%81%A8%E3%81%AB%E3%81%BE%E3%81%A8%E3%82%81%E3%82%8B">■6章「モジュール」プログラムを部品ごとにまとめる</a></h2> <h3 id="6-1  モジュールとは"><a href="#6-1+%E3%80%80%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8%E3%81%AF">6-1  モジュールとは</a></h3> <p><strong>6-1-1 モジュール化とそのメリット</strong></p> <p>モジュールを分けよう、という話です。<br /> モジュールを分けるのは大事です。前提としてどこを切り離したほうがいいか、わかっている必要がありますが。<br /> 後から分けることも可能です。ただし後から分けようしたときには、すでに複雑になりすぎている場合もありますね、、。</p> <p>合わせて、どのモジュールがどの機能で使われているのか、というドキュメントを作る必要がありそうです(私の場合)。今、ほとんどドキュメント作ってないので、、作ります、、</p> <p><strong>6-1-2 メンバーをどこに追加するか</strong></p> <blockquote> <p>標準モジュールに記述したパブリックレベルのメンバーは、常にグローバルのメンバーとなります。</p> </blockquote> <p>ですよね・・・。<br /> どこからでもアクセスできるうえに、名前がかぶるのは避けたいし、どれがどれだかわからなくなっていく。</p> <blockquote> <p>その問題を解決するための一つの手段として、標準モジュールではなく、オブジェクトモジュールを使うという選択肢が用意されています。</p> <p>このように、モジュールによる機能の部品課をする上で、オブジェクトにメンバーを追加するという選択肢は重要かつ効果的です。それを実現するためには、標準モジュールだけではなく、それ以外のモジュールとその使い方について知る必要があります。</p> </blockquote> <p>解決法が!見えてきました!!(知らなかったです、、キケン!)</p> <p>読んでよかった・・・(涙)</p> <p><strong>6-1-3 モジュールの分類</strong></p> <blockquote> <p>クラスモジュールは、オブジェクトの定義すなわちクラスを作成するためのモジュールです。<br /> クラスモジュールを使用することで、オリジナルのオブジェクトを作成することができます。</p> </blockquote> <p>クラスモジュールを使ったことがないので、これから学んでいきたいです。</p> <p>それにしても、VBA実務を半年近くやっているので、本書がものすごく身に染みています。<br /> 読み進めるごとに、知らないといけない、とても大事なことがたくさん書かれています。<br /> 知らないでよくやってたなーとしみじみ、、、まだ書籍の先は長いですが、、、</p> <p>今のタイミングが、身につくにはちょうど良かったのかもしれません。<br /> 初級から中級にステップアップするために、読み進めていきたいと思います。</p> <p>知らなかったことを知れるのって喜びですよね!</p> <h2 id="▼著者サイト"><a href="#%E2%96%BC%E8%91%97%E8%80%85%E3%82%B5%E3%82%A4%E3%83%88">▼著者サイト</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba/">書籍「パーフェクトExcel VBA」発売についてのお知らせ </a></p> <h2 id="▼Amazonリンク"><a href="#%E2%96%BCAmazon%E3%83%AA%E3%83%B3%E3%82%AF">▼Amazonリンク</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297108755/ref=cm_sw_r_tw_dp_U_x_Jab-DbGJPCAZ1">パーフェクトExcel VBA (PERFECT SERIES)   高橋 宣成著</a></p> Hata tag:crieit.net,2005:PublicArticle/15653 2019-12-29T13:52:00+09:00 2019-12-29T13:56:37+09:00 https://crieit.net/posts/VBA-5-Excel-VBA VBAをパーフェクトにマスターするシリーズ♪ 5章「プロシージャ」「パーフェクトExcel VBA」 <h2 id="■前回までの記事"><a href="#%E2%96%A0%E5%89%8D%E5%9B%9E%E3%81%BE%E3%81%A7%E3%81%AE%E8%A8%98%E4%BA%8B">■前回までの記事</a></h2> <p><a href="https://crieit.net/posts/VBA-Excel-VBA">VBAにもっと詳しくなろう♪ 「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-2-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 2章「式と値」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-3-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 3章「ステートメント」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-4-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 4章「フロー制御ステートメント」「パーフェクトExcel VBA」</a></p> <p>続きを書きました。<br /> VBAをパーフェクトにマスターするシリーズ♪<br /> 今回は「5章」で新しく知ったことと、思ったことを簡単にまとめました。</p> <p>これは学習記録です。<br /> 書籍の内容は、あえて多くは載せていません。<br /> 大事なことも省いていますので、詳細につきましては、ぜひ書籍をご覧ください。</p> <h2 id="■5章「プロシージャ」手続きに名前を付ける"><a href="#%E2%96%A05%E7%AB%A0%E3%80%8C%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3%E3%80%8D%E6%89%8B%E7%B6%9A%E3%81%8D%E3%81%AB%E5%90%8D%E5%89%8D%E3%82%92%E4%BB%98%E3%81%91%E3%82%8B">■5章「プロシージャ」手続きに名前を付ける</a></h2> <h3 id="5-2  Subプロシージャ"><a href="#5-2+%E3%80%80Sub%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3">5-2  Subプロシージャ</a></h3> <p><strong>5-2-2 Subプロシージャの呼び出し</strong></p> <p><strong>[Call]</strong> <em>name [argumentlist]</em></p> <p>Callキーワードは省略可能。<br /> 但し、Callキーワードを書いたときは、引数リストの丸かっこが必要 <strong>Call</strong> <em>name (argumentlist)</em><br /> Callキーワードを省略したときは、引数リストの丸かっこが不要 <em>name argumentlist</em></p> <p>そんな違いがあるそうです。<br /> しかも引数が1つの場合は、Callキーワードなしで丸かっこを付けてもエラーにならない。</p> <p>結論:Callキーワードを書いたほうが見やすいので、常に書くようにしたい。</p> <h3 id="5-3 引数の構文"><a href="#5-3%E3%80%80%E5%BC%95%E6%95%B0%E3%81%AE%E6%A7%8B%E6%96%87">5-3 引数の構文</a></h3> <p><strong>5-3-1 引数の指定項目</strong></p> <p><strong>Sub</strong> <em>name</em> ([<em>arglist</em>])<br /> [<em>statements</em>]<br /> <strong>End Sub</strong></p> <p>▼引数の構文<br /> [<strong>Optional</strong>] [<strong>ByVal</strong>|<strong>ByRef</strong>] [<strong>ParamArray</strong>] <em>varname</em>[()] [<strong>As</strong> <em>type</em>] [ = <em>defaultvalue</em>]</p> <p>・ByVal、ByRefを省略すると、規定はByRefになる。</p> <p>引数では、規定値(defaultvalue)を指定することもできるようです。知りませんでした。<br /> 以降で詳しく説明されています。</p> <p><strong>5-3-2 引数の順序と名前</strong></p> <pre><code>Call SayHello ( name:="Bob", message:="Hello") </code></pre> <p>名前付きで引数を指定することもできる!</p> <p><strong>5-3-3 引数をオプションにする</strong></p> <pre><code>Sub SayHello(message As String, Optional name As String = "Bob") End Sub </code></pre> <p>・引数の構文の先頭にOptionalをつけると省略可能になる。<br /> ・その際に規定値を指定することができる(しないでもOK)。<br /> ・Optionalを付けた引数以降の引数は、すべてOptionalにしなければいけない。</p> <p>・引数のデータ型がオブジェクト型の場合は、規定値にはNotingのみが設定可能だが、規定値を省略してもNotingになる。</p> <p><strong>5-3-4 値渡しと参照渡し</strong></p> <p>・ByVal、ByRefを省略すると、規定はByRefになる。</p> <blockquote> <p>特に理由がなければByValキーワードを付与して値渡しにするほうがよいでしょう。</p> </blockquote> <p>著者曰く、参照渡しには処理速度やメモリ容量の点でメリットもあるが、可読性や現在のPC性能を考えると値渡しのほうを推奨しますとのこと。</p> <p><strong>5-3-5 配列を引数として渡す</strong></p> <p>・引数として配列を渡すことができる。<br /> ・動的配列として受け取る方法とVariant型の変数として受け取る方法がある。</p> <p>・動的配列の場合は参照渡しのみ可。(固定配列は渡せない。上限下限を指定できないため)</p> <pre><code>Sub Increment ( ByRef num() As Long) End Sub </code></pre> <p>・Variant型の変数として受け取る場合、値渡しが可能となる。</p> <pre><code>Sub Increment ( ByVal num As Variant) End Sub </code></pre> <p><strong>5-3-6 パラメーター配列</strong></p> <blockquote> <p>パラメーター配列を使用すると、任意の数の引数を配列として受け取ることができます。</p> </blockquote> <p>引数の数を固定せずに受け取れる機能。扱いに注意が必要。<br /> いくつか条件が記載されています。</p> <p>個人的には、特別な理由があるときに使うもので、敢えて進んで使うものではないように思います。</p> <h3 id="5-4 Functionプロシージャ"><a href="#5-4%E3%80%80Function%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3">5-4 Functionプロシージャ</a></h3> <p><strong>5-4-1 Functionプロシージャの定義</strong></p> <blockquote> <p>Functionプロシージャは、手続きを実行した結果戻り値を返すプロシージャです。</p> </blockquote> <p><strong>5-4-2 Functionプロシージャの呼び出し</strong></p> <blockquote> <p>Functionプロシージャを他のプロシージャから呼び出すには、戻り値を使用するかどうかで2つの構文を使い分ける必要があります。</p> </blockquote> <p>戻り値を使用しないのならFunctionプロシージャにしなくて良いのでは?と思いましたが、<br /> 呼び出す側のプログラムが複数あって、使用したい場合とそうでない場合がある、ということであれば、そのような状況もありそうです。</p> <p>えーと。</p> <blockquote> <p>戻り値を受け取らずに、破棄しても良い場合は、Subプロシージャの呼び出しと同様、Callステートメントを使用することでFinctionプロシージャnameを呼び出すことができます。</p> </blockquote> <p>[Call] <em>name</em> [<em>argumentlist</em>]</p> <blockquote> <p>戻り値を受け取るようにFunctionプロシージャを使用する場合は、以下のようにFunctionプロシージャ名nameに続けて、引数リストaumumentlistを丸かっこで囲みます。引数を一つも渡さない場合は丸かっこは不要となります。</p> </blockquote> <p><em>name</em> [ ( <em>argumentlist</em> ) ]</p> <blockquote> <p>このように、Functionプロシージャを呼び出す場合は、戻り値を使用するかどうかで引数リストを丸かっこで囲むかどうかが決まりますので注意が必要です。</p> </blockquote> <p>えーと。。<br /> 今まで私はFunctionプロシージャを使うときは、戻り値を使用する前提で使っていたので、えーと、どういうことだろう、、、いらない場合があるのはわかるのですが、引数をかっこで囲まない? というのが少しややこしくて混乱しています。<br /> 「戻り値を使わない場合、Callで呼べるけど、引数をかっこで囲まない。」という決まりがある、ということですね。</p> <p><strong>5-4-3 Functionプロシージャから複数の値を返す</strong></p> <blockquote> <p>Functionプロシージャの戻り値は複数にすることはできません。したがって、複数の値を返したいというときには、ひと工夫が必要になります。</p> </blockquote> <p>・Typeステートメントによるユーザー定義型を使って複数の値を返すことが可能。<br /> ・引数として複数の値を参照渡しで渡す。参照渡しなので値が変わる。</p> <p>Typeステートメントを使ったことはありませんでした。後者が使われているコードは読んだことがありますが、モジュールレベル変数にしては?と思ったり、なぜSubではなくFuntionなのだろう?と思ったりしていました。</p> <blockquote> <p>「戻り値を複数にする」という課題に対する手段は、多くの選択肢があり、これはVBAという言語の特徴をよく表しています。<br /> つまりVBAは同じ目的に対して多くの選択肢が存在していて、その中からメリットとデメリットを踏まえて判断する能力が求められるということです。</p> </blockquote> <h3 id="5-5 Propertyプロシージャ"><a href="#5-5%E3%80%80Property%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3">5-5 Propertyプロシージャ</a></h3> <p>し、知らない。こんな機能があるなんて。</p> <p><strong>5-5-1 Propertyプロシージャとプロパティ</strong></p> <blockquote> <p>Propertyプロシージャは、クラスモジュールで使用されるものと言われることが多いですが、標準モジュールを始め、他のモジュールでも使用することができます。<br /> 詳しくは6章で紹介しますが、</p> <p>本節では、標準モジュールに「プロパティ」を作成していく方法を見ていくことにしましょう。</p> </blockquote> <p><strong>5-5-2 Property Let/Setプロシージャの定義</strong></p> <blockquote> <p>Property LetプロシージャおよびProperty Setプロシージャは、モジュール変数に値またはオブジェクト参照を設定するためのプロシージャです。</p> </blockquote> <p><strong>5-5-3 Property Letプロシージャの呼び出し</strong></p> <p>変数はPrivateにしておいて、Property LetはPublicにしておくと、<br /> Property Letを通るときに、変数に入る値をチェックすることができる。<br /> 適切でない値が変数に入らないようにすることが可能です。(カプセル化ですね。)</p> <p><strong>5-5-4 Property Setプロシージャの呼び出し</strong></p> <p>Letと同様に。</p> <p><strong>5-5-5 Property Getプロシージャの定義</strong></p> <p>Getは取得のほう。</p> <p><strong>5-5-6 Property Getプロシージャの呼び出し</strong></p> <p><em>name [(argumentlist)]</em></p> <p>値を返すので、Callは不要。(だけどいきなり唐突に書いてあるので、コードをパッと見ると「何コレ?!」ってなりますね。</p> <blockquote> <p>Property Getプロシージャは手続きを持つことができますので、モジュール変数に処理を加えて取り出すことができます。つまりモジュール変数を増やさずともプロパティを作ることができます。</p> </blockquote> <p>便利です。</p> <pre><code>Private price_ As Long Public Property Let Price(ByVal newPrice As Long) If newPrice >= 0 Then price_ = newPrice Else price_ = 0 End Property Public Property Get Price() As Long Price = price_ End Property Public Property Get TaxIncluded() As Currency Const TAX_RATE As Currency = 0.08 TaxIncluded = price_ * (1 + TAX_RATE) End Property </code></pre> <p>▼別モジュール</p> <pre><code> Sub MySub() Price = 100 Debug.Print Price, TaxIncluded End Sub </code></pre> <blockquote> <p>適切なプロシージャ化は、ただのコードの羅列についてその役割を浮き彫りにして、使いまわしがきくようにします。また、その守備範囲を線引きして、無関係な処理との関連性を下げます。</p> <p>ある処理が存在するとき、それについてどのようなまとまりでプロシージャ化するのか、またどのようなプロシージャ名にするか、引数や戻り値の受け渡し方法はいかにするかなど常に考えを巡らせて、その判断力を磨き続けていきましょう。</p> </blockquote> <p>これは理想的ですがとても難しいことだなーと思っています。<br /> 実務の場合、ある機能Aを作ったあとに、まったく別の機能Bを作り、次に機能Cを作るときになって、そういえばAの機能で作った箇所が部分的に使えるかも、となることはあります。</p> <p>そのときに、機能Aを見直して、共通の処理を共通のモジュールに移動させることができればいいのですが、「大至急作る」ときにそこまでなかなかできず、結果的に機能Aと機能Cにそれぞれ別の同じ処理を書いてしまうこともあります。</p> <p>もしくは機能Aの箇所に書いている処理を機能Cからも呼び出して使うのですが、そうすると今度は機能を減らすときに、コードを削るのが難しくなります。</p> <p>リファクタリングは大事ですが時間と手間がかかります。<br /> 作る段階で全体像を見渡せればよいのですが、継ぎ足し継ぎ足し作っている場合は、<br /> できるだけ、その都度コードの見直しができたらいいのでしょう。。<br /> すくなくとも、後からでもわかりやすいように命名に気を付けようと思います。</p> <p>今回こうしてまとめて学習して、こんな機能があったのか-知らなかった、ということも多かったです。<br /> 最初からすべてを理解して進めるのは難しいですが、<br /> どこかのタイミングで改めて、総合的に学習することはとても大切な気がしています。</p> <p>本書、まだ1/3にもたどり着いていません。先は長いですね・・・。</p> <h2 id="▼著者サイト"><a href="#%E2%96%BC%E8%91%97%E8%80%85%E3%82%B5%E3%82%A4%E3%83%88">▼著者サイト</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba/">書籍「パーフェクトExcel VBA」発売についてのお知らせ </a></p> <h2 id="▼Amazonリンク"><a href="#%E2%96%BCAmazon%E3%83%AA%E3%83%B3%E3%82%AF">▼Amazonリンク</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297108755/ref=cm_sw_r_tw_dp_U_x_Jab-DbGJPCAZ1">パーフェクトExcel VBA (PERFECT SERIES)   高橋 宣成著</a></p> Hata tag:crieit.net,2005:PublicArticle/15644 2019-12-28T09:45:03+09:00 2019-12-28T09:51:35+09:00 https://crieit.net/posts/VBA-4-Excel-VBA VBAをパーフェクトにマスターするシリーズ♪ 4章「フロー制御ステートメント」「パーフェクトExcel VBA」 <h2 id="■前回までの記事"><a href="#%E2%96%A0%E5%89%8D%E5%9B%9E%E3%81%BE%E3%81%A7%E3%81%AE%E8%A8%98%E4%BA%8B">■前回までの記事</a></h2> <p><a href="https://crieit.net/posts/VBA-Excel-VBA">VBAにもっと詳しくなろう♪ 「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-2-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 2章「式と値」「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-3-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 3章「ステートメント」「パーフェクトExcel VBA」</a></p> <p>続きを書きました。<br /> VBAをパーフェクトにマスターするシリーズ♪<br /> 今回は「4章」で新しく知ったことと、思ったことを簡単にまとめました。</p> <p>これは学習記録です。<br /> 書籍の内容は、あえて多くは載せていません。<br /> 大事なことも省いていますので、詳細につきましては、ぜひ書籍をご覧ください。</p> <h2 id="■4章「フロー制御ステートメント」"><a href="#%E2%96%A04%E7%AB%A0%E3%80%8C%E3%83%95%E3%83%AD%E3%83%BC%E5%88%B6%E5%BE%A1%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88%E3%80%8D">■4章「フロー制御ステートメント」</a></h2> <h3 id="4-2  Select Caseステートメント"><a href="#4-2+%E3%80%80Select+Case%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88">4-2  Select Caseステートメント</a></h3> <p><strong>4-2-3 文字列を判定する</strong></p> <blockquote> <p>式リストにToキーワードやIsキーワードを用いることで、文字列が指定の範囲に含まれるかという判定が可能です。</p> </blockquote> <pre><code>Sub MySub() Dim c As String Select Case c Case "0" To "9" '半角数字 Case "A" To "Z", "a" To "z" '半角アルファベット Case Else End Select End Sub </code></pre> <p>正規表現で指定するのではなく、こんな書き方もできるそうです!<br /> 知りませんでした。</p> <h3 id="4-4 For Each ~ Next ステートメント"><a href="#4-4%E3%80%80For+Each+%EF%BD%9E+Next+%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88">4-4 For Each ~ Next ステートメント</a></h3> <p><strong>4-4-2 コレクションに対する反復処理</strong></p> <blockquote> <p>Excel VBAでは、多くのオブジェクトについてその集合を表すコレクションが用意されています。<br /> たとえば、Wrokbooks、Worksheets、Range、ListRowsなどです。</p> <p>多くのコレクションは、その要素数を返すCountプロパティを持ちますので、For ~ Next ステートメントで代替することも可能です。</p> </blockquote> <p><strong>4-4-3 配列に対する反復処理</strong></p> <blockquote> <p>配列に対する反復処理の場合は、ループ内で使用する変数をVariantg型にする必要があり、その点でわかりづらくなってしまうというデメリットがあります。</p> <p>For ~ Next文の初期値にLBound関数、終了値にUBound関数を用いる記述を用いることのほうが多いようです。</p> </blockquote> <pre><code> Dim numbers(1 To 3) As Long Dim i As Long For i = LBound(numbers) To UBound(numbers) Debug.Print numbers(i) Next i </code></pre> <p>私はFor~Nextのほうが好みなので、どちらかといえばEachを使わないことが多いです。</p> <p>でもこういうときには、こっちのほうが便利でしょう?・・・と言われたらそうなのかな。</p> <pre><code> Dim numbers(1, 1) As Long numbers(0, 0) = 0: numbers(1, 0) = 1 numbers(0, 1) = 2: numbers(1, 1) = 3 Dim number As Variant For Each number In numbers Debug.Print number Next number </code></pre> <p>「全部」の処理をしてる、というのがわかりやすいから、ということのようです。<br /> 入れ子になっても良いと思うのだけど、どうなんでしょう。<br /> 順番を指定して処理したいかどうか?というのも大きそうです。<br /> おおよそ指定したいことが多いです、私の場合。</p> <h3 id="4-6 処理の終了とスキップ"><a href="#4-6%E3%80%80%E5%87%A6%E7%90%86%E3%81%AE%E7%B5%82%E4%BA%86%E3%81%A8%E3%82%B9%E3%82%AD%E3%83%83%E3%83%97">4-6 処理の終了とスキップ</a></h3> <p><strong>4-6-1 Exitステートメント</strong></p> <blockquote> <p>Exit Property ・・・ Propertyプロシージャを終了する</p> </blockquote> <p>「Exit Property」は知りませんでした。そんなのあるんだ。<br /> っていうか「Propertyプロシージャ」って何だろう?(※5章に載ってました)</p> <p><strong>4-6-3 Exitステートメントによるループの終了</strong></p> <p>For文が入れ子になっているとき、内側のFor文から一気に外側のFor文も抜けたい場合、<br /> 外側をDo~Loop文、内側をFor文にして、Exit Doで一気に抜けられるテクニックが載っていました。</p> <p>私の場合、入れ子になっていて両方抜けたい場合は、フラグ(Boolean)を使っているような気がします。</p> <p><strong>4-6-4 GoToステートメントによるループのスキップ</strong></p> <p>他のプログラミング言語にはあるContinueがないので、ループのスキップにGoToが使えます、という話です。</p> <blockquote> <p>本節で紹介したループのスキップ、4-7で紹介するエラー処理など、特定の目的以外での使用は避けたほうがよいでしょう。</p> </blockquote> <p>乱用は避けましょう。</p> <h3 id="4-7 処理の中断"><a href="#4-7%E3%80%80%E5%87%A6%E7%90%86%E3%81%AE%E4%B8%AD%E6%96%AD">4-7 処理の中断</a></h3> <p><strong>4-7-1 Stopステートメント</strong></p> <p>Stopの使い方。Stopでは必ず止まります。次のAssertは、</p> <p><strong>4-7-2 Debug.Assertステートメント</strong></p> <p><strong>Debug.Assert</strong> <em>booleanexpression</em></p> <blockquote> <p>booleanexpressionはブール式で、<strong>Falseに評価された場合にのみ、処理を中断します。</strong></p> <p>異常値の検出にも有効です。</p> </blockquote> <pre><code>Debug.Assert cell.Value >= 0 </code></pre> <p>→cell.Valueが負の数だと止まるので、</p> <blockquote> <p>本来0以上の数のみしか存在しえないのであれば、負の数が検出された時点で処理が中断し、異常値への対応を行うことができます。</p> </blockquote> <p>Debug.Assert、使っていなかったのですが、今後は活用したいと思います。</p> <h3 id="4-8 エラー処理"><a href="#4-8%E3%80%80%E3%82%A8%E3%83%A9%E3%83%BC%E5%87%A6%E7%90%86">4-8 エラー処理</a></h3> <p>大事なエラー処理ですが、少し身構えてしまいます。</p> <p><strong>4-8-1 On Errorステートメント</strong></p> <p><strong>On Error</strong> { <strong>GoTo</strong> <em>line</em> | <strong>Resume Next</strong> | <strong>GoTo 0</strong> }</p> <blockquote> <p>On Error Resume Next ・・・ エラー処理を有効にし、以降で発生したすべての実行時エラーを無視する<br /> On Error GoTo 0  ・・・ 有効になっているエラー処理をすべて無効にする</p> </blockquote> <p><strong>4-8-2 エラー発生時に処理を分岐する</strong><br /> <strong>On Error GoTo</strong> <em>line</em></p> <pre><code> On Error GoTo ErrorHandler '~処理~ ErrorHandler: Debug.Print Err.Description </code></pre> <p>Err.Description が気になりました。<br /> (Errオブジェクトについては9章で紹介されているそうです)</p> <p><strong>4-8-3 エラーを無視する</strong><br /> On Error Resume Next</p> <blockquote> <p>エラーを無視してもその後の処理に影響がないという確信がある場合にのみ使用すべきでしょう。</p> </blockquote> <p>最近、なんでここでエラー出るねん、と思って、そのあとの処理に影響なかったので、使ったことがあります。<br /> あまり使いたくないです。</p> <p><strong>4-8-4 エラー処理を無効にする</strong><br /> <strong>On Error GoTo 0</strong></p> <pre><code> On Error Resume Next Debug.Print x / y Debug.Print "エラーが無視されました" On Error GoTo 0 </code></pre> <blockquote> <p>On Error Resume Nextステートメントを使用する際には、その影響範囲を少なくすることができますので、積極的に使用するとよいでしょう。</p> </blockquote> <p>この辺、すこし苦手意識があります。もっと慣れたいところです。平常心で挑みたい。<br /> 人が書いたコードにOn Error ~ と書いてあると、一瞬、ウッ、となるんですよね。何してるんだろうと思って、身構えてしまいます。<br /> 今回、本書を読んで、前より少し馴染めた気がします。実戦(戦い?)に活かしたいです。</p> <p><strong>4-8-5 Resumeステートメント</strong></p> <blockquote> <p>エラー処理ルーチンから、元の処理に戻ることもできます。</p> </blockquote> <p>えっ、戻れるの?!</p> <blockquote> <p>▼Resume ステートメントの種類<br /> Resume  ・・・ エラーが発生したステートメントに処理を移す<br /> Resume Next  ・・・ エラーが発生したステートメントの次のステートメントに処理を移す<br /> Resume <em>line</em> ・・・ <em>line</em> で指定した行ラベルまたは行番号に処理を移す</p> </blockquote> <pre><code> On Error GoTo ErrorHandler Dim x As Long, y As Long x = 1 Debug.Print x / y ErrorHandler: y = 5 Resume </code></pre> <p>こんなことまでできてしまう!</p> <p>・・・なのですが、</p> <blockquote> <p>エラー処理を充実させるとコードが増え、可読性やメンテナンスの負荷が上がります。</p> </blockquote> <p>ということなので、あまり書きすぎるのも良くないようです。<br /> その辺、バランス良く考えてから、作りたいところです。</p> <h3 id="4-9 Withステートメント"><a href="#4-9%E3%80%80With%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88">4-9 Withステートメント</a></h3> <p>4-9-2 Withステートメントのオブジェクト参照のしくみ</p> <blockquote> <p>Withステートメントを使用するメリットはもう一つあります。<strong>オブジェクト参照の回数を減らせる</strong>ということです。</p> </blockquote> <p>実は、Withもあまり好きではないのですが(好みの問題)、使いますよね。<br /> 見やすい以外にも、処理が速い(体感できるかはさておき)ようです。</p> <p>.</p> <blockquote> <p>本章では、一般的にある程度使用されていると思われるものについては、隠さずに紹介をするようにしました。実際に、どれをどのように使用するかについてのヒントにも触れながら解説を進めましたが、都度「作法」と照らし合わせて、判断をするようにしてください。</p> </blockquote> <p>とても大事でとても難しいポイントかなと思います。</p> <p>次回はプロシージャです。<br /> プロシージャ、、まだすぐに言葉の意味が理解できません。Subプロシージャ、Functionプロシージャ、等ですね。。。</p> <p>私は「暗記」が非常に苦手です。プログラミングでは、カタカナや英語の略称が山ほど出てくるので、慣れるしかないですね。今までは雰囲気で理解していましたが(それを理解しているというのか?)、今回はゆっくり読んで、アウトプットもしながら、なので、反復でなじませていければと思っています。</p> <h2 id="▼著者サイト"><a href="#%E2%96%BC%E8%91%97%E8%80%85%E3%82%B5%E3%82%A4%E3%83%88">▼著者サイト</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba/">書籍「パーフェクトExcel VBA」発売についてのお知らせ </a></p> <h2 id="▼Amazonリンク"><a href="#%E2%96%BCAmazon%E3%83%AA%E3%83%B3%E3%82%AF">▼Amazonリンク</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297108755/ref=cm_sw_r_tw_dp_U_x_Jab-DbGJPCAZ1">パーフェクトExcel VBA (PERFECT SERIES)   高橋 宣成著</a></p> Hata tag:crieit.net,2005:PublicArticle/15642 2019-12-27T10:39:39+09:00 2019-12-27T13:03:13+09:00 https://crieit.net/posts/VBA-3-Excel-VBA VBAをパーフェクトにマスターするシリーズ♪ 3章「ステートメント」「パーフェクトExcel VBA」 <h2 id="■前回までの記事"><a href="#%E2%96%A0%E5%89%8D%E5%9B%9E%E3%81%BE%E3%81%A7%E3%81%AE%E8%A8%98%E4%BA%8B">■前回までの記事</a></h2> <p><a href="https://crieit.net/posts/VBA-Excel-VBA">VBAにもっと詳しくなろう♪ 「パーフェクトExcel VBA」</a></p> <p><a href="https://crieit.net/posts/VBA-2-Excel-VBA">VBAをパーフェクトにマスターするシリーズ♪ 2章「式と値」「パーフェクトExcel VBA」</a></p> <p>続きを書きました。<br /> VBAをパーフェクトにマスターするシリーズ♪<br /> 今回は「3章」で新しく知ったことと、思ったことを簡単にまとめました。<br /> 詳細につきましては、書籍をご覧ください。</p> <h2 id="■3章「ステートメント」"><a href="#%E2%96%A03%E7%AB%A0%E3%80%8C%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88%E3%80%8D">■3章「ステートメント」</a></h2> <h3 id="3-1  ステートメントとは"><a href="#3-1+%E3%80%80%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88%E3%81%A8%E3%81%AF">3-1  ステートメントとは</a></h3> <p>3-1-2 ステートメントの記述</p> <p>前回気になった、コロン記号についての記述はここにありました。</p> <h3 id="3-2 スコープ"><a href="#3-2%E3%80%80%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97">3-2 スコープ</a></h3> <p>3-2-6 スコープを絞る重要性</p> <p>宣言を先頭にまとめて書くことは、最初は習慣として行っていましたが<br /> 使う直前に宣言したほうがいいよね?と。確かにその通りです。<br /> そこで「コロン記号」もさらに活躍の場が増えます。</p> <pre><code>Dim x as Long: x = 10 Dim y as String: y = "abc" </code></pre> <p>なるほど!</p> <h3 id="3-3 識別子とネーミング"><a href="#3-3%E3%80%80%E8%AD%98%E5%88%A5%E5%AD%90%E3%81%A8%E3%83%8D%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0">3-3 識別子とネーミング</a></h3> <p>3-3-2 ネーミングの方針</p> <p>一部抜粋します。</p> <blockquote> <p>・変数にはキャメル記法、<br /> モジュールやプロシージャ、メソッド及びプロパティにはパスカル記法、<br /> 定数にはアッパースネーク記法</p> </blockquote> <p>キャメル記法の例: lastRow , userName<br /> パスカル記法の例: SetValue , EndOfMonth , IsClear<br /> アッパースネーク記法の例: TAX_RATE , TARGET_URL</p> <blockquote> <p>・変数やプロパティには名詞、<br /> Subプロシージャやfunctionプロシージャおよびメソッドは動詞のワードから始める</p> <p>・配列やコレクションの変数名は複数形にする</p> </blockquote> <p>私は今でもカタカナが並ぶと即座に理解はできません。<br /> モジュール、ああ、標準モジュールとかの、あれのことか。<br /> プロシージャ、、、SubプロシージャとかFunctionプロシージャってそういえばさっき書いたな。</p> <p>メソッド、、、メソッド?  巻末の索引を見る。<br /> 「Addメソッド」「Copyメソッド」ふむ。。<br /> プロパティ。これはすぐわかる。</p> <p>ああそういえば、プロシージャもキャメル記法で書いてるな、と気付きました。<br /> コーディング規約というかルール決めていないので、ちょっとこの辺は弱いところです。<br /> ルールを固めておきたいです。(すでに書いたものを直すのはなかなか大変だけど)</p> <h3 id="3-4 変数"><a href="#3-4%E3%80%80%E5%A4%89%E6%95%B0">3-4 変数</a></h3> <p>3-4-1 変数の宣言</p> <pre><code>Sub Mysub() Dim msg As String Dim x As Long, y As Long Stop End Sub </code></pre> <p>実は今までstopって何に使うんだろう?と思ってました。<br /> 実行するとStopのところで止まるので、そのときにローカルウィンドウを見る、という使い方ができる!<br /> やってみました。おー便利!</p> <p>3-4-3 変数の有効期間</p> <blockquote> <p>プロシージャレベル変数についてプロシージャ終了後にも値を保持しておきたいときには、<br /> Staticステートメントを使うという方法があります。</p> </blockquote> <p>Staticステートメントが使えるそうです。いつのタイミングで使うと良いのか、今はわかりませんが、知識として持っておくと、何かの時に使うという選択肢が増えますね。</p> <h3 id="3-5 代入"><a href="#3-5%E3%80%80%E4%BB%A3%E5%85%A5">3-5 代入</a></h3> <blockquote> <p>VBAの「やさしさ」が影響をして、勘違いを生じさせる可能性のある要因が含まれています。</p> </blockquote> <p>3-5-2 値の代入</p> <blockquote> <p>変数やプロパティに値を代入するには、Letステートメントを使用します。<br /> 以下のように、</p> </blockquote> <pre><code>Dim num As Long: Let num = 10 Dim message As String: Let message = "hoge" </code></pre> <p>今まで何気なくやっていた値の代入ですが、<br /> Letを省略していたということのようです。ほう!</p> <pre><code>Dim num As Long: num = 10 Dim message As String: message = "hoge" </code></pre> <p>3-5-4 オブジェクト参照の代入</p> <p>Letに対して、オブジェクト参照の時は、Setになっていて、<br /> これを省略するとLetだと認識されて実行時エラーになる、ということと理解しました。</p> <h3 id="3-6 定数/列挙型"><a href="#3-6%E3%80%80%E5%AE%9A%E6%95%B0%EF%BC%8F%E5%88%97%E6%8C%99%E5%9E%8B">3-6 定数/列挙型</a></h3> <p>3-6-1 定数の宣言</p> <p>マジックナンバーはできる限り使わないで書きたいし、<br /> 書いてほしいので、定数や、列挙型を活用したいところです。<br /> ここはいちばん最初から気を付けておきたいポイントです!</p> <p>3-6-2 列挙型の宣言</p> <p>列挙型が使えます。とても便利!</p> <blockquote> <p>列挙型はプロシージャレベルで宣言することはできません。<br /> したがってEnumステートメントは宣言セクションに記述します。</p> <p>パブリックモジュールレベルにするのであればPubicキーワード、<br /> プライベートモジュールレベルにするのであればPrivateキーワードを構文の先頭に付与します。<br /> いずれのキーワードも省略した場合は、パブリックモジュールレベルとなります。</p> </blockquote> <p>Public、Privateを省略したときに、どっちになるか、というのが、<br /> 常に同じではないような気がして、私はこの辺があいまいになっています。<br /> (SubプロシージャやFunctionプロシージャで省略したときもPublicになりますね。)<br /> できるだけ省略しないで書くに越したことはないと思います!</p> <h3 id="3-7 配列"><a href="#3-7%E3%80%80%E9%85%8D%E5%88%97">3-7 配列</a></h3> <p>3-7-2 固定配列の宣言</p> <blockquote> <p>宣言セクションにOption Baseステートメントを記述すると、そのモジュールでの配列の下限値を設定することができます。デフォルトでは0となります。</p> </blockquote> <p>Option Base { 0 | 1 }</p> <p>3-7-5 Variant型の変数と配列</p> <pre><code>Dim values As Variant values = Array("Bob", 25, #1/1/1993#) Debug.Print values(0), values(1), values(2) </code></pre> <blockquote> <p>Variant型の変数は配列として宣言をしなくても、配列を格納できます。<br /> その際に、配列のサイズの指定をする必要はありません。</p> <p>Array関数は配列を含むVariant型を返す関数です。10章で改めて紹介します。</p> </blockquote> <p>セル範囲をまとめて配列に取得するときに使っています。とても便利です。<br /> 11章で紹介されているようです。</p> <p>3-7-6 配列の初期化と解放</p> <p><strong>Erase</strong> <em>arraylist</em></p> <p>配列の消去を行うステートメント。使ったことないです。</p> <p>固定配列の場合は、要素がデータ型に応じて初期化される。<br /> 動的配列の場合は、確保しているメモリが解放される。</p> <p><a href="https://crieit.now.sh/upload_images/140e97c4bc10b4382c284603a487c1e55e055a4dc44fb.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/140e97c4bc10b4382c284603a487c1e55e055a4dc44fb.png?mw=700" alt="1.png" /></a></p> <p>Erase staticArray, dinamicArray の後</p> <p><a href="https://crieit.now.sh/upload_images/09cf65110445fe6560b3a142e8d833315e055a5917545.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/09cf65110445fe6560b3a142e8d833315e055a5917545.png?mw=700" alt="2.png" /></a></p> <h3 id="3-8 ユーザー定義型"><a href="#3-8%E3%80%80%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%AE%9A%E7%BE%A9%E5%9E%8B">3-8 ユーザー定義型</a></h3> <blockquote> <p>ユーザー定義型を宣言するには、以下のTypeステートメントを使用します。<br /> ユーザー定義型は、プロシージャレベルでは宣言することができませんので、Typeステートメントは宣言セクションに記述します。</p> </blockquote> <p>これも使っていないです。使えることを知りませんでした。</p> <blockquote> <p>ユーザー定義型の要素は配列とすることもできます</p> </blockquote> <pre><code>Private Type Person Name As String Age As Long Birthday As Date End Type Sub MySub() Dim p As Person p.Name = "Bob" p.Age = 25 p.Birthday = #1/1/1993# End Sub </code></pre> <blockquote> <p>ユーザー定義型で実現できることは、クラス定義することで実現可能です。</p> <p>各要素に対して処理を行いたいときや、コレクションに追加したいときなどは、ユーザー定義型では実現できませんので、クラスを使うことになります。</p> </blockquote> <p>まだVBAでクラスを使ったことがないのです。<br /> クラスをどんなふうに使うのかはもう少し後に載ってそうです。</p> <h3 id="3-9 コメント"><a href="#3-9%E3%80%80%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">3-9 コメント</a></h3> <p><strong>Rem</strong> <em>comment</em></p> <p><strong>'</strong> <em>comment</em></p> <p>コメントは、アポストロフィ記号(')を使います。</p> <blockquote> <p><strong>実はこの記述方法はRemステートメントの省略形です。</strong></p> <p>Remステートメントは「VBAのすべての命令はステートメントである」ということを表す好例です。</p> </blockquote> <p>アポストロフィ記号は実は「Rem」の略なのだそうです。知りませんでした!</p> <p>他にも、知らずに省略したりしていることが多そうです。(Letもそうでした)</p> <p>ひとつひとつ知っていくことで、少しずつ知識が深まっているというか、<br /> 表面的には変わらなくても、知っておくことは割と大事なことのような気がしています。</p> <p>.</p> <p>これで3章は終わりです!</p> <p>ここに書きながらなので、こんなに丁寧に書籍を読み進めたことはないかも、というほど丁寧に読んでいます。<br /> どこまで書けるかな? すくなくとも「Part2 Excel VBAの言語仕様」のところは、こうして追っていけたらと思っています。</p> <h2 id="▼著者サイト"><a href="#%E2%96%BC%E8%91%97%E8%80%85%E3%82%B5%E3%82%A4%E3%83%88">▼著者サイト</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba/">書籍「パーフェクトExcel VBA」発売についてのお知らせ </a></p> <h2 id="▼Amazonリンク"><a href="#%E2%96%BCAmazon%E3%83%AA%E3%83%B3%E3%82%AF">▼Amazonリンク</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297108755/ref=cm_sw_r_tw_dp_U_x_Jab-DbGJPCAZ1">パーフェクトExcel VBA (PERFECT SERIES)   高橋 宣成著</a></p> Hata tag:crieit.net,2005:PublicArticle/15641 2019-12-26T15:14:19+09:00 2019-12-27T10:47:41+09:00 https://crieit.net/posts/VBA-2-Excel-VBA VBAをパーフェクトにマスターするシリーズ♪ 2章「式と値」「パーフェクトExcel VBA」 <h2 id="■前回の記事"><a href="#%E2%96%A0%E5%89%8D%E5%9B%9E%E3%81%AE%E8%A8%98%E4%BA%8B">■前回の記事</a></h2> <p><a href="https://crieit.net/posts/VBA-Excel-VBA">VBAにもっと詳しくなろう♪ 「パーフェクトExcel VBA」</a></p> <p>これの続きを書きました。<br /> VBAをパーフェクトにマスターするシリーズ♪<br /> 今回は「2章」で新しく知ったことと、思ったことを簡単にまとめました。<br /> 詳細につきましては、書籍をご覧ください。</p> <h2 id="■前置き"><a href="#%E2%96%A0%E5%89%8D%E7%BD%AE%E3%81%8D">■前置き</a></h2> <p>分厚さがすごい書籍です。なかなか開くのに気合というか勇気がいりますネ!</p> <p>私は今社内で、VBAで、ほぼ一人開発をやって約半年になります。<br /> そして来年は、すこし他の人に伝授する機会が与えられそうなので、、</p> <p>人に教えるには、自分が理解していないといけません。<br /> 半年間の実務で「VBAやってみたらできた」という感じなのです。</p> <p>もっと体系的に理解したい、より良いコードを書きたい、と思っていたところで、<br /> ベストな書籍に出会えたと思っています。</p> <p>そんな状況なので、もう本がどんなに分厚くても、<br /> 開かざるを得ないですよね。</p> <p>というわけで、<br /> 前回は1章にしか触れていませんでしたので、<br /> 今回は2章以降に入りたいと思います。</p> <p>リアルタイム学習記録です。</p> <h2 id="■1章の後半では、"><a href="#%E2%96%A01%E7%AB%A0%E3%81%AE%E5%BE%8C%E5%8D%8A%E3%81%A7%E3%81%AF%E3%80%81">■1章の後半では、</a></h2> <blockquote> <p>1-4 本書を使ったVBA学習の進め方<br /> 「2章から7章にかけて、VBAの体系を構成する以下の要素について、小さな要素から順に積み上げるように解説をしていきます。<br /> <strong>これらの章は飛ばさずに順番に進めるようにしてください。</strong>」</p> </blockquote> <p>と書かれていたので、<br /> 順番に進めていきたいと思います。</p> <blockquote> <p>1-5 Visual Basic Editorについて</p> </blockquote> <p>Visual Basic Editorについて、<br /> 知らなかったことがいろいろ書かれてました。</p> <p>そのボタンは押したことがない、というものがいくつかありました。<br /> 基本の操作方法の知識は大事です。知る機会が得られてよかったです。</p> <p>F2キーを押して、<br /> オブジェクトブラウザを表示したこともありませんでした。<br /> これから使っていこうと思います!</p> <h2 id="■2章「式と値」"><a href="#%E2%96%A02%E7%AB%A0%E3%80%8C%E5%BC%8F%E3%81%A8%E5%80%A4%E3%80%8D">■2章「式と値」</a></h2> <h3 id="2-1 式とその構成要素"><a href="#2-1+%E5%BC%8F%E3%81%A8%E3%81%9D%E3%81%AE%E6%A7%8B%E6%88%90%E8%A6%81%E7%B4%A0">2-1 式とその構成要素</a></h3> <p>「式とは何か」の説明から始まります。<br /> 主に、言葉の定義の説明です。国語の勉強をしているようです。理解が難しいです。<br /> 私は本は雰囲気で読むので、あまり丁寧に文字を追うということをしないのですが、<br /> 丁寧に読もうと思って、ところどころ音読しながらゆっくり読みました。</p> <p>私はC言語を職業訓練で習い、自分でもJava等を学習しています。<br /> そのため、ある程度のプログラミング言語の前提知識はあります。</p> <p>なので、私にとっては「VBAではどうなのか?」というところが、<br /> 特に学習のポイントになると思っています。</p> <p>始めて読む人が、この言葉の定義の部分で、ん?わからない???となった場合、<br /> とりあえずさっと流して、先に進むといいと思います。<br /> わからなくても進みましょう。(私も←告白)</p> <h3 id="2-2 データ型"><a href="#2-2%E3%80%80%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B">2-2 データ型</a></h3> <p>VBAで扱えるデータ型について、<br /> 大事なポイントは「未初期化状態の値」の把握です。<br /> もともとは何の値が設定されているかに意識を向けて、初期化したいものです。</p> <p>ここに、String型の「未初期化状態の値」は、「vbNullString」と書かれていたので、<br /> さっそく先ほどのF2キーを押して、オブジェクトブラウザで検索してみました。</p> <p>なるほど!と思いました。</p> <h3 id="ブール型"><a href="#%E3%83%96%E3%83%BC%E3%83%AB%E5%9E%8B">ブール型</a></h3> <p>VBAでは、「True」 は 「-1」、「False」 は 「0」と等しいと判定されるそうです!!</p> <p>「True」は「-1」だけだそうです。<br /> (他の言語だと0以外は全部True扱いになったりもしたような)</p> <h3 id="日付型"><a href="#%E6%97%A5%E4%BB%98%E5%9E%8B">日付型</a></h3> <p>日付型については、詳しく知りませんでした。<br /> びっくりしました。<br /> コードウィンドウに宣言を書くと、自動的に値が変わる!<br /> うわ!すごい!(やってみた)</p> <p>ところで、この↓<br /> <em>Dim d1 as Date: d1 = #2018-12-31#</em></p> <p>Dateのあとの「:」(コロン)も使ったことがありません。<br /> 知りませんでした。コロンで区切ると、1行で書けるのでした!</p> <h3 id="比較演算子"><a href="#%E6%AF%94%E8%BC%83%E6%BC%94%E7%AE%97%E5%AD%90">比較演算子</a></h3> <h3 id="Is演算子"><a href="#Is%E6%BC%94%E7%AE%97%E5%AD%90">Is演算子</a></h3> <pre><code>Dim rng As Range Set rng = Sheet1.Range("A1") Debug.Print rng Is Sheet1.Range("A1") </code></pre> <p>このDebug.Printは、Falseが出力されます。<br /> Rangeオブジェクトの場合、取得するごとに別のメモリアドレスに格納されるから<br /> Falseになるとのこと。知りませんでした!</p> <h3 id="Like演算子"><a href="#Like%E6%BC%94%E7%AE%97%E5%AD%90">Like演算子</a></h3> <p><em>string</em> <strong>Like</strong> <em>pattern</em></p> <p>今までほぼ文字列の比較のつもりで使ってました。認識が少し変わりました!<br /> 文字列と「特定のパターン」の比較をしていたのですね。</p> <h3 id="論理演算子"><a href="#%E8%AB%96%E7%90%86%E6%BC%94%E7%AE%97%E5%AD%90">論理演算子</a></h3> <p>ここでは、Notのみならず、Xorも、それ以外まで載っています。<br /> この部分は、初めて見て、もしわからなかったとしても、<br /> 例えばExcelでVBAをはじめてすぐに、Xorが必要になるかというと、<br /> おそらく多分そんなことはないので、さらっとで大丈夫だと思います!</p> <p>次回は3章に取り組みたいと思います!</p> <p>.</p> <h2 id="▼著者サイト"><a href="#%E2%96%BC%E8%91%97%E8%80%85%E3%82%B5%E3%82%A4%E3%83%88">▼著者サイト</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba/">書籍「パーフェクトExcel VBA」発売についてのお知らせ </a></p> <h2 id="▼Amazonリンク"><a href="#%E2%96%BCAmazon%E3%83%AA%E3%83%B3%E3%82%AF">▼Amazonリンク</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297108755/ref=cm_sw_r_tw_dp_U_x_Jab-DbGJPCAZ1">パーフェクトExcel VBA (PERFECT SERIES)   高橋 宣成著</a></p> Hata tag:crieit.net,2005:PublicArticle/15626 2019-12-20T10:36:57+09:00 2019-12-26T08:07:21+09:00 https://crieit.net/posts/VBA-Excel-VBA VBAにもっと詳しくなろう♪ 「パーフェクトExcel VBA」 <p><strong>私は半年前からExcel VBAで仕事をしています。</strong> VBAを書くのが主な業務です。<br /> 良くいえば社内SEのような立ち位置です。他の方は別業務なのでほぼひとりでやっています。<br /> 頼れるのはほぼ、書籍(主に図書館利用)とネット検索のみ。</p> <p>ネットで検索して、その場その場で目の前の課題は解決できますが、<br /> その場しのぎになりがちです。<br /> 書籍でも勉強したいと思い、図書館で借りてみて、よさそうだなと思った数冊を買っています。</p> <p>そんなタイミングで出会った本が「パーフェクトExcel VBA」でした。<br /> 発売直直前で、ちょうど著者の方がサイトで書評を募集されていて、手を挙げて送っていただきました。</p> <p>辞書的に使えるのかな?と思っていましたが、<br /> 「まえがき」を読んで…</p> <p><a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba-preface/">「パーフェクト Excel VBA」の「まえがき」の全文は著者サイトで紹介されています。</a><br /> <a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba-preface/">https://tonari-it.com/perfect-excel-vba-preface/</a></p> <blockquote> <p>学習を進めていくにしたがって、VBAには他のプログラミング言語では、それほど目立たない、いくつかの「弱点」があるように見えてきました。<br /> * 理解があやふやなのに動いてしまっているため、エラーや仕様変更が発生したときの対応に大変な労力がかかる</p> <ul> <li><p>同じ目的に対して、それを実現するための書き方がいくつも存在していて混乱する</p></li> <li><p>たくさんの「自己流」が存在していて、他のVBAユーザーとの協力体制を築きづらい</p></li> <li><p>クラスやオブジェクトモジュールなどの概念について学ぶ機会がないため、他の方法で実現してしまっている</p></li> </ul> </blockquote> <p>ウンウン頷いてしまいました。</p> <p>確かに「理解があやふやなのに動いてしまっている」部分も…(わりとあります)<br /> ネットで検索して、こんな風に書けば動くんだじゃあこれを使おう、みたいな感じで<br /> 流用することもあります…</p> <p>何もないところからコードを書くこともありますが、<br /> ノンプログラマーの上司の書いたコードを修正することもあります。<br /> そういう時は特に、部分的にしかコードも読まないので<br /> ココ何やってるかわからないけど、動いてるからいいかーとなりがちです。</p> <p>実務なので、スピード重視、なるべく早くやってね!<br /> できたら次はこれね!と次々に課題がやってくるので、<br /> ゆっくり見直している時間はありません。</p> <p>ちゃんと動かないと困るので、できるだけ入念に動作確認はしてますが、<br /> 「動作確認」と「コードの理解」は、似て異なりますよね…</p> <p>そして、まだ使ったことのない「クラスモジュール」も、<br /> 使えたら便利そうだけど、具体的にどういうときに使えばいいのか?わからずにいます。</p> <p>そんな状態なので、</p> <blockquote> <p>VBAはプログラマーではない多くの方も活用されているので、「初心者向けの簡単に身につけられる言語」と捉えられがちですが、決してそうではありません。まずは、その事実を確認しつつ、学習をする上での心構えを整えます。その役割は1章が担っています。</p> </blockquote> <p>この「1章」の前半で、もう既に、かなりの衝撃を受けました。<br /> 他のどんな技術書とも違う。とても大事なことが書いてあります。</p> <p><strong>他のプログラミングをするときと、VBAとで何が違うのか?<br /> VBAを業務で使う人がどんな状況にいて、何に困っているのか?<br /> じゃあどうしたらいいのか?・・・が書いてあります。</strong></p> <p>1章の1-3までの見出しを載せておきます。</p> <blockquote> <p><strong>1-1 VBA を学び続けるために必要なこと</strong><br /> 1-1-1 VBA はやさしい言語か?<br /> 1-1-2 歴史と言語の特徴<br /> 1-1-3 学習環境<br /> 1-1-4 VBAならではの課題への対策<br /> <br /> <strong>1-2 VBA の体系を理解し、知識の整理整頓をする</strong><br /> 1-2-1 正しい学習とは<br /> 1-2-2 体系の理解と関連付け<br /> <br /> <strong>1-3 VBAの作法を身につけ、コードに一貫性を持たせる</strong><br /> 1-3-1 選択肢が多いことによる弊害<br /> 1-3-2 VBAの作法と4つの指針<br /> 1-3-3 可読性<br /> 1-3-4 柔軟性<br /> 1-3-5 信頼性<br /> 1-3-6 再利用性</p> </blockquote> <p>この部分だけでも、読む価値はとてもありました!!</p> <p><strong>VBAを始めたばかりの人、VBAを業務で使っていて、なんとなくは出来ているけど…という方、<br /> ここに力強い味方が現れましたよー!</strong></p> <p>Excelを使う会社には、少なくとも1冊は常備してもらいたい本です!</p> <p>これから始める人にも、大切なことが書いてありますし、<br /> 始めてからちょっと経ったの私のような人には、より身に染みます。<br /> これまで書いたコード、書き直したい...</p> <p><strong>本書を手に取ったら、まずは1章を読んでみてください。</strong></p> <p>分厚い本の勉強中に、モチベーションを見失いそうになったら、<br /> もう一度、1章を読み直してみてください。私もそうしようと思います。</p> <p>この本を手に取るVBA使いは、<br /> 今よりもっと、VBAを楽しく、自信を持って使えるようになると思います!!</p> <p>みなさんが、VBA 楽しめますように。私も楽しみたいと思います♪</p> <p>追記:<br /> 同じ内容なのに書き方が8パターンもある、という紹介です。<br /> そりゃー、わかりにくくもなりますよね。<br /> <a href="https://crieit.now.sh/upload_images/197d7657e4860acb928ec92407baff705e03eb1884abc.JPG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/197d7657e4860acb928ec92407baff705e03eb1884abc.JPG?mw=700" alt="IMG-1964.JPG" /></a></p> <p>▼著者サイト<br /> <a target="_blank" rel="nofollow noopener" href="https://tonari-it.com/perfect-excel-vba/">書籍「パーフェクトExcel VBA」発売についてのお知らせ </a></p> <p>▼Amazonリンク<br /> <a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297108755/ref=cm_sw_r_tw_dp_U_x_Jab-DbGJPCAZ1">パーフェクトExcel VBA (PERFECT SERIES)   高橋 宣成著</a></p> Hata tag:crieit.net,2005:PublicArticle/15616 2019-12-18T04:45:35+09:00 2019-12-18T07:02:13+09:00 https://crieit.net/posts/2019-5df9305f35c8a プログラミングが好きでずっとプログラミングしていたい。2019 <p>昨日のアドベントカレンダーの記事は、kakisoftさんの<br /> <a href="https://crieit.net/posts/14a6cfe7df0d4f2bca6caf888d2c2951">2019年:乱発したアウトプットの振り返り</a><br /> でした。</p> <p>す、すごいアウトプットの量、、作れたらいいな〜と考えても、全然量産出来ないので尊敬です。しかもポートフォリオの技術欄にも、いっぱい星が並んでるー!</p> <p>あ、スマホアプリ作って広告貼れば、アドセンスよりは収益いいかもしれません…<br /> (私は受け取れるほど稼いでいませんが…AdMob上に貯まっていってます…)</p> <h2 id="■ 2019年の個人的なふりかえりと自己紹介です"><a href="#%E2%96%A0+2019%E5%B9%B4%E3%81%AE%E5%80%8B%E4%BA%BA%E7%9A%84%E3%81%AA%E3%81%B5%E3%82%8A%E3%81%8B%E3%81%88%E3%82%8A%E3%81%A8%E8%87%AA%E5%B7%B1%E7%B4%B9%E4%BB%8B%E3%81%A7%E3%81%99">■ 2019年の個人的なふりかえりと自己紹介です</a></h2> <p>ちょうど一年前のアドベントカレンダーに、思いきって初めて書いたのが以下のポエム記事です。</p> <p><a href="https://crieit.net/posts/40">今年スマホアプリを作ってプログラマーになった40代女性の話。https://crieit.net/posts/40</a></p> <h3 id="あれから1年…"><a href="#%E3%81%82%E3%82%8C%E3%81%8B%E3%82%891%E5%B9%B4%E2%80%A6">あれから1年…</a></h3> <p>(赤っぽいジャケットの長髪のカツラの人が思い浮かびましたが、名前が出てこない…彦…)</p> <p>今日も「なんでも」ポエムを書かせていただきます。<br /> ポエムって「技術記事ではない」という意味で使っています。つまりこれは私的な散文です。</p> <p>あ、注意書きに「プログラマー、クリエイターが興味のあることであれば」って載ってましたね。<br /> 興味のあること…orz</p> <h2 id="■ 2019年の仕事"><a href="#%E2%96%A0+2019%E5%B9%B4%E3%81%AE%E4%BB%95%E4%BA%8B">■ 2019年の仕事</a></h2> <p>2018年11月末で2018年6月からプログラマーとして働いていた会社を辞めた私は、<br /> 2019年2月から3月末ぐらいまでフルリモートで働き、<br /> 2019年5月に技術派遣で始めた仕事は2日で辞め、<br /> 2019年6月末から、現在の会社で主にVBAで仕事をしております。</p> <p>その間に何度かCrieitに記事を書かせていただいたので<br /> もし気になる方がいればこちらをどうぞ。<br /> <a href="https://crieit.net/users/33hata33">https://crieit.net/users/33hata33</a></p> <p>怒涛の1年でした。<br /> 今年も転職の年というか、ひとところにとどまらない日々でした。<br /> フルリモートでハートブレイクした後は、技術派遣を2日で辞めたことでさらに傷つき、<br /> 凹みまくり、あああもうどんな仕事もできないかもしれないいいいい・・・・と、なっておりました。</p> <p>もううどんかもしれないいいいいいと言ったところで<br /> 税金などの請求は来る訳で、、生きているとお金がかかりますね。</p> <p>ちょっとでもいいから収入を得なければ、ということで、<br /> とりあえず(社会復帰のリハビリのために)これなら大丈夫かな〜?と<br /> おそるおそる週3日のCAD仕事に応募しまして。</p> <p>ふと気付いたら、<br /> その会社で、上司にも周りの人にも恵まれ(人間関係とても大事ですね〜)<br /> 結局CADではなく、初めてのVBAで開発を担当して、<br /> とても楽しく仕事をさせていただいております。ありがたや〜</p> <p>今年の働いた日数こんなです。<br /> 1月は0日、2月は約20日、3月は約10日、4月は0日、5月は2日、6月は3日、<br /> 7月,8月は週3日、9月,10月は週2,3日…</p> <p>ぼこぼこに凹んだメンタルは、安定して小稼働で働くことで、<br /> こんな記事を書けるまでに回復しました。</p> <p>今の仕事は、気分的には、お題を出されて解答を考えるとお金がもらえる、みたいな気分でできてます。<br /> 本人にとっては、クイズの答えを考えるのが仕事みたいで、ラッキー♪タナボタ♪みたいな感じです。</p> <p>(でもまあ…11月頃からちょっと状況が変わってきて、難易度が上がって、やりがいもその分ありますが…)<br /> (楽しいけど時間が…足り…な…い…?)</p> <h2 id="■ 2019年の個人開発"><a href="#%E2%96%A0+2019%E5%B9%B4%E3%81%AE%E5%80%8B%E4%BA%BA%E9%96%8B%E7%99%BA">■ 2019年の個人開発</a></h2> <h3 id="Web"><a href="#Web">Web</a></h3> <p>1つWebサービスを作ってみました。<br /> 勉強していたLaravelを使って、何かしら完成させようと思い、ハードルを下げまくって作りました。<br /> ハードル上げると完成できなくなるので。</p> <p>なんのために作ったのかって、これ、ポートフォリオにするつもりだったみたいです。<br /> せっかくだから広く公開しちゃえ〜と出しました。</p> <p><a href="https://crieit.net/posts/5-5d9c0ecabe849">サービスリリースしました(=゚-゚)ノ 週休5日のプログラマーは快適という話。</a></p> <p>そして学んだことは、(技術云々はさておき)<br /> Webサービスは、AppleのAppStoreに並べられないから、<br /> ほっといても知らない人が検索して見つけて使ってくれることはあまりないのだろう、ということ。</p> <p>「作る」のは楽しくても、それ以外の作業が膨大に存在すること。<br /> そうはいっても、ユーザーをちゃんと獲得している人々がいること。</p> <p>たくさん作ったら、どれかはヒットするかもしれない。<br /> それだけ数が作れるようになっていれば技術も向上しているだろうし…なんて妄想はします。</p> <p>別のアイディアもあるのですが(脳内に)。</p> <h3 id="スマホアプリ"><a href="#%E3%82%B9%E3%83%9E%E3%83%9B%E3%82%A2%E3%83%97%E3%83%AA">スマホアプリ</a></h3> <p>Appleのデベロッパー登録も、2年目の更新はしたものの、<br /> 今年は、ちょっとバージョンアップしただけになっています。</p> <p>ところが、ずっとどうしてもこれだけは活用せねばならない、という使命感のある絵がありまして。<br /> そのままもう1年以上経っているのですが、2020年はスマホアプリを完成させますよ…!</p> <p>そしてまあ…スマホアプリ作れると知られると、作ってほしい!と言われることがありますね。<br /> 最近そう言われて、珍しくいやだと思わなかったので、前述のアプリを完成させたあと、<br /> 取りかかれたらいいな。(来年の抱負)</p> <h2 id="■ 大切にしたいこと"><a href="#%E2%96%A0+%E5%A4%A7%E5%88%87%E3%81%AB%E3%81%97%E3%81%9F%E3%81%84%E3%81%93%E3%81%A8">■ 大切にしたいこと</a></h2> <p>いろいろやっていみて気付きました。</p> <h3 id="プログラミングが大好き"><a href="#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%8C%E5%A4%A7%E5%A5%BD%E3%81%8D">プログラミングが大好き</a></h3> <p>私は「プログラミング」自体が好きです。どうやって実現するか、ロジックを考えるのも好きです。<br /> 設計も好きです。ドキュメントを見栄え良く作るのは、あまり得意ではないですが。</p> <p>プログラミングが好きなので、何を作るかというのは二の次です。<br /> 作れそうなものを作っています。</p> <p>何が好きって、業務システムがわりと好きです。<br /> どちらかといえば、求人サイトを作るよりは、特定の事業者向けの専門ソフトを作る方が好みです。</p> <p><strong>コード書いてる時が幸せです。</strong></p> <h3 id="新しいことを知るのが好き"><a href="#%E6%96%B0%E3%81%97%E3%81%84%E3%81%93%E3%81%A8%E3%82%92%E7%9F%A5%E3%82%8B%E3%81%AE%E3%81%8C%E5%A5%BD%E3%81%8D">新しいことを知るのが好き</a></h3> <p>デザインは苦手ですが、今年はCSSの基本をやってみたりはしました。<br /> やったことのないことをやってみるのが好きです。<br /> 自分にとって簡単すぎることを続けるのはちょっと苦痛です。</p> <h3 id="自由が好き"><a href="#%E8%87%AA%E7%94%B1%E3%81%8C%E5%A5%BD%E3%81%8D">自由が好き</a></h3> <p>決められていることが苦手です。<br /> 毎日会社に行かねばならないのは辛い。<br /> 会社が好きでも辛い(気力と体力が)。</p> <p>人が大勢いるところ(職場とか)にずっと居続けるのがちょっと辛い。<br /> カフェも人がいるので、家が一番ホッとします。</p> <p>今はなぜか、半分会社で半分家で仕事をしている上に<br /> 出社日も融通がきくのでとても助かっています。</p> <p>自由な時間は、たくさんある方がいいです。</p> <p>週2日会社に行くと、人と話すリハビリになるので、<br /> 私にとってはちょうど良い頻度みたいです。</p> <h3 id="安心したい"><a href="#%E5%AE%89%E5%BF%83%E3%81%97%E3%81%9F%E3%81%84">安心したい</a></h3> <p>安心して過ごしていないと、不安だと何もできなくなります。<br /> なので、ある程度の収入と自由な時間がバランス良くあると良いです。</p> <p>大半の人はそうかも…?</p> <p>窮地に追い込んで力を発揮するタイプではありません。</p> <h3 id="脳内お花畑"><a href="#%E8%84%B3%E5%86%85%E3%81%8A%E8%8A%B1%E7%95%91">脳内お花畑</a></h3> <p>テレビのニュースは基本的に見ません。<br /> 事件や事故のニュースを聞くと、映像が頭に浮かんで怖いからです(子供の頃はそうだった)。</p> <p>私は、自分の頭の中は、ホワホワ幸せでいたいのです。<br /> みんな仲良く平和に楽しく過ごしている、と思いたいのです。</p> <p>たとえ本当はそうでなくても、私が知らなければそれで良いと思っています。<br /> 社内の人間関係の裏話とか聞きたくないです。</p> <p>NHK教育テレビ番組の、子供向け番組の、<br /> どちらかといえば人間が出てこないものの方が好きです。(誰も聞いてないって)</p> <h2 id="■ 総括"><a href="#%E2%96%A0+%E7%B7%8F%E6%8B%AC">■ 総括</a></h2> <p>私は、2017年頃(それまでも)、<br /> <strong>「プログラマーとして仕事したいなあ、でもやっぱりむりかなあ、でもやりたいなあ」</strong><br /> と思っていました。</p> <p>理由は、プログラミングが好きでずっとプログラミングしていたいから。</p> <p>.</p> <p>2018年にスマホアプリを初めて作りました。<br /> プログラマーとして仕事も始めることができました。<br /> 家から自転車で20分の距離の会社に、ホームページのお問い合わせフォームから問い合わせました。<br /> (半年で辞めたけど。今は会社自体が引っ越してもっと遠くなりました。)</p> <p>2019年は、上に書いた派遣に行く前も、決まってから1ヶ月ぐらいあったので、<br /> ずっと家で勉強してました。<br /> でも会社に行ったら、誰も教えてくれない状態で、<br /> 10年以上前の複雑で膨大なコードを読むのは心折れました。</p> <p>入門書をいくら読んだところで、書籍でいくら実践したところで、<br /> 実務のコードがスラスラ読める訳ではないですもんね。<br /> しかもプログラム実行もできない環境で、順に追っていくことすら難しく。<br /> 質問しても、そのぐらいわからないと後で困るから、という感じで答えてもらえず。</p> <p>それにしても2日は早いだろう、と思いますが、社内の雰囲気もちょっと…で。<br /> たらればですが、もし一緒に面談を受けた人が一緒に入っていたら、励ましあって頑張れたかもしれません。</p> <p>打たれ弱いんです。ここで負けないぞ!と歯を食いしばって頑張れるタイプではないのです。</p> <p>でも、そのおかげで、今のとても恵まれた環境で、楽しい気持ちで仕事ができているので、<br /> 人生ってどう転ぶかわかりませんね。</p> <p>.</p> <p>YOUも勝手に自分を諦めずに、生きているうちにやりたいことやろう〜♪</p> Hata tag:crieit.net,2005:PublicArticle/15606 2019-12-14T09:14:06+09:00 2019-12-14T12:21:07+09:00 https://crieit.net/posts/60-70 脱力のススメ「世の中のサラリーマンの大半は、60%から70%のエネルギーを仕事に注いでいるらしい」 <h2 id="「世の中のサラリーマンの大半は、60%から70%のエネルギーを仕事に注いでいるらしい」"><a href="#%E3%80%8C%E4%B8%96%E3%81%AE%E4%B8%AD%E3%81%AE%E3%82%B5%E3%83%A9%E3%83%AA%E3%83%BC%E3%83%9E%E3%83%B3%E3%81%AE%E5%A4%A7%E5%8D%8A%E3%81%AF%E3%80%8160%25%E3%81%8B%E3%82%8970%25%E3%81%AE%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%82%92%E4%BB%95%E4%BA%8B%E3%81%AB%E6%B3%A8%E3%81%84%E3%81%A7%E3%81%84%E3%82%8B%E3%82%89%E3%81%97%E3%81%84%E3%80%8D">「世の中のサラリーマンの大半は、60%から70%のエネルギーを仕事に注いでいるらしい」</a></h2> <p>初めてこれを聞いたとき、「少なっ!!!!!」と衝撃を受けた。</p> <p>なぜなら私はいつも100%から120%のエネルギーを注いで仕事をしていたから。</p> <p>「全力投球」という言葉そのものだった。</p> <p>仕事には全力を尽くすものだ、と(勝手に)思い込んでいた。</p> <h2 id="その結果、どうだったか。"><a href="#%E3%81%9D%E3%81%AE%E7%B5%90%E6%9E%9C%E3%80%81%E3%81%A9%E3%81%86%E3%81%A0%E3%81%A3%E3%81%9F%E3%81%8B%E3%80%82">その結果、どうだったか。</a></h2> <p><strong>・・・力尽きて倒れます。</strong></p> <p>今ならわかるが、ゴールのないマラソンで全力疾走してはいけない。</p> <p>フルマラソンを50m走のペースで走り続けられるわけない(当たり前)</p> <h2 id="ホントーにホントーなのか?"><a href="#%E3%83%9B%E3%83%B3%E3%83%88%E3%83%BC%E3%81%AB%E3%83%9B%E3%83%B3%E3%83%88%E3%83%BC%E3%81%AA%E3%81%AE%E3%81%8B%EF%BC%9F">ホントーにホントーなのか?</a></h2> <p>さて冒頭の言葉だが、真偽のほどはわからない。</p> <p>けれどもその頃、普段会社では<br /> 「(私から見たら)絶対に守れないであろう目標期限」を設定して、<br /> 「できます!やります!頑張ります!」と笑顔で元気よく(!?)言い続けている人たちが、結構いたり</p> <p>社内の個人面談で、上司と話したときに、<br /> 「今よりもっと上の成果の目標」を求められるのだけど、</p> <p>いつも全力で頑張っているので、「これ以上頑張るのは無理です」と言ったら<br /> 「自分でそう思うならそうなんでしょうね」と言われたり(まあそうなんだけどさ)</p> <p>ということがあり、そりゃ普段、60%で仕事してたら、<br /> 「もっと(もうちょっと)、頑張ります!」って、こういうとき言えるよね、と。</p> <h2 id="思い込みに気づく"><a href="#%E6%80%9D%E3%81%84%E8%BE%BC%E3%81%BF%E3%81%AB%E6%B0%97%E3%81%A5%E3%81%8F">思い込みに気づく</a></h2> <p>以前の私は「人の役に立たないとそこにいてはいけない」とか、<br /> 「会社は社会の役に立ってないといけない」さらに「その会社で自分が役に立っていないと雇われていてはいけない(お給料をもらってはいけない)」などのマイルールが厳しかったのだ。</p> <p>役に立ちたかったし喜ばれたかった。<br /> それだけ「何もしない自分には価値がない」と思い込んでいた、ということなのだろう。</p> <p>でも本当はそうじゃないよね・・・<br /> 動物とか植物と同じで、生命体って生存してるだけでホントはいいんだと思う・・・</p> <p>「役に立ちたい欲」がすごかっただけなんだよね・・・</p> <h2 id="とういわけで"><a href="#%E3%81%A8%E3%81%86%E3%81%84%E3%82%8F%E3%81%91%E3%81%A7">とういわけで</a></h2> <p>全力を尽くして、倒れたら、働きすぎってことだから。</p> <p>うっかり全力を尽くしちゃう人は、<br /> 意識的にサボるぐらいの気持ちで働いて、ちょうどいいんだと思う。<br /> (表面的には頑張ってまーす!ってふりをしてもいいし)</p> <p>頑張りすぎないで、そんなゆるゆるの自分でもいいじゃーんと思えたらいいなあと。<br /> 自分に厳しくしすぎないで、他人への優しさ、を自分へも分けてあげてほしい。</p> <p>(って昔の自分に言ってもよくわからなかっただろうけど)</p> <h2 id="具体的な提案"><a href="#%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AA%E6%8F%90%E6%A1%88">具体的な提案</a></h2> <p>少しずつやり方を変えていったらいいと思う。</p> <p>具体的には、</p> <ul> <li><p>「フルタイム残業あり」で働いてるなら、全く残業しないで、「あの人は残業しない人だ」と会社から認識されるぐらいになる。(体が弱い人のふりをしてもいい)</p></li> <li><p>サービス残業はやめる。</p></li> <li><p>フルタイムじゃなくて、週4日にする。(同じ会社でも可能なことも割とあるからやめるぐらいなら交渉してみて)</p></li> <li><p>働く時間を1日8時間より短くする。(時短正社員っていう制度もあるらしい)</p></li> <li><p>有給は遠慮なく使ってしまう。たとえ周りが使ってなくても、先頭切ってお手本を示そう。</p></li> <li><p>一部リモートで仕事できないか交渉してみる。</p></li> <li><p>長期休暇を取って旅行に行く(私は旅行には行かないけど、家に居るのが好き)</p></li> <li><p>会社辞めたかったら、失業保険を(雇用保険に入ってる人はやめたらもらえるよ)もらってしばらく何もしないで過ごす。</p></li> </ul> <p>会社への条件変更は、本気でいえば、交渉次第で許されることもあるし(特に技術職なら尚更)、<br /> 聞いてくれないならこれ幸いと、転職を視野に入れてもいいし、</p> <p>なんでもよくて、「こういう風に過ごしたいな」って思うことに対して<br /> 自分が自分に「それでもいいよ」ってOK出せれば、</p> <p>より楽しく過ごしやすく、生きやすくなるんじゃないかなぁ<br /> という提案でした。</p> <h3 id="ちなみに今現在より少し前の私はこんな感じ↓です♪"><a href="#%E3%81%A1%E3%81%AA%E3%81%BF%E3%81%AB%E4%BB%8A%E7%8F%BE%E5%9C%A8%E3%82%88%E3%82%8A%E5%B0%91%E3%81%97%E5%89%8D%E3%81%AE%E7%A7%81%E3%81%AF%E3%81%93%E3%82%93%E3%81%AA%E6%84%9F%E3%81%98%E2%86%93%E3%81%A7%E3%81%99%E2%99%AA">ちなみに今現在より少し前の私はこんな感じ↓です♪</a></h3> <p><a href="https://crieit.net/posts/5-5d9c0ecabe849">サービスリリースしました(=゚-゚)ノ 週休5日のプログラマーは快適という話</a>。 - Crieit</p> Hata tag:crieit.net,2005:PublicArticle/15560 2019-11-25T11:14:22+09:00 2021-12-11T16:25:11+09:00 https://crieit.net/posts/129d8493f5d021552ae53b9d2d357d72 リモート可能なエンジニア求人の見つけ方とリンク集 <p><a href="https://crieit.now.sh/upload_images/943d04db85c9986633a5ef50623872265ddb3b4db0cde.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/943d04db85c9986633a5ef50623872265ddb3b4db0cde.jpg?mw=700" alt="pc" /></a></p> <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <p>最初に言っておきますが、大した記事ではないので期待しないでね!(^人^)</p> <p>「リモート可能なエンジニア求人の見つけ方と求人へのリンク集」の記事を、<br /> もし書いたら、読みたい!興味ある!という人が22,3人いたので書きますねー。<br /> <a target="_blank" rel="nofollow noopener" href="https://twitter.com/33hata33/status/1191591412220825600">twitterアンケート結果はこちら</a></p> <p>「会社に行かなくていいなんて楽そうだなー」<br /> 「家でリラックスした状態で仕事できるなんていいなー」<br /> とお思いのみなさん、こんにちは。</p> <p>確かに家で仕事ができて、会社に行かなくてよかったら<br /> 通勤の手間もかからないし、かなり良いですね。</p> <p>他にも、育児や介護などで手が離せないけど<br /> 仕事がしたい!という、立派な方もいらっしゃると思います。</p> <p>私の場合は特に理由はありません。<br /> 強いて言うなら、首都圏に住んでいないので<br /> 東京に通勤するのはあまり現実的ではない、というぐらい。<br /> (で、今は、半分通勤、半分在宅で、仕事してます。その話はまた別途。。。)</p> <h2 id="リモートワークの探し方"><a href="#%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E6%8E%A2%E3%81%97%E6%96%B9">リモートワークの探し方</a></h2> <p>さて、<br /> リモート可のエンジニア職を探す方法はいろいろあります。<br /> ハローワークでも「在宅勤務可」の仕事も掲載されているので<br /> うまく検索してみましょう。</p> <p>検索していると過去の求人も出てくると思いますが、<br /> そういう時は、直接会社のホームページから問い合わせれば良いです。</p> <p>また「リモート可」と書いていなくても、<br /> 会社のホームページから直接、問い合わせてみるのもアリです。</p> <p>あと「最初は通勤じゃないとだめだけど、慣れてくれば在宅でもいいですよ」<br /> という会社も、わりと田舎でもあります。そういう会社に入ってみるのもひとつの手でしょう。<br /> 仲間がどんな人たちかわかっていると、リモートになってからもやりやすいと思います。</p> <p>あと余談ですが、エンジニア関連の知り合いが増えると<br /> どこかから仕事の紹介が流れてくることもあります。<br /> 自分のできることを表現して行くのも良いかもしれません。(ブログ、Twitterなど)</p> <p>ちなみに、受け身のTwitter転職はあまりオススメしません。。。<br /> 「会社」や「求人情報」を、自分から探してみませんか?</p> <h2 id="自分の希望を伝えてみよう"><a href="#%E8%87%AA%E5%88%86%E3%81%AE%E5%B8%8C%E6%9C%9B%E3%82%92%E4%BC%9D%E3%81%88%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86">自分の希望を伝えてみよう</a></h2> <p>ところで条件に関してですが、<br /> それから「会社側が表立って提示している条件に合致しないといけない」と思っている人が<br /> 結構いるように思いますが、無理して合わせようとせずに、<br /> 「こういう条件で働きたいのですが・・・」と、相談してみるのもひとつの手です。</p> <p>日本人は奥ゆかしくて控えめで、空気を読んで合わせる人が多いようなので、<br /> 自ら、こうしてほしいなどという交渉をする人は少ないのかもしれませんが、<br /> だめもとで聞いてみるのはアリではないでしょうか?</p> <p>あなたがもし既にその会社で貢献しているのなら、<br /> ある程度の融通は効かせてくれる可能性が結構あります。<br /> そうじゃないなら他を探せばいいだけです。</p> <p>ちなみに、業務委託だと最低時給もなんのその(業務委託に最低時給は存在しないので)<br /> ものすごーく安い案件もあるのでご注意を。</p> <h2 id="リンク集"><a href="#%E3%83%AA%E3%83%B3%E3%82%AF%E9%9B%86">リンク集</a></h2> <p>以下、リンク集です。<br /> 会社のホームページに直接リンクを貼るのはOKかわからないので、していません。<br /> 探せばたくさん出てくるので、探してみてください。</p> <p>時期をあけてちょくちょく探していると、前は見かけなかった案件を見つけられたりするので<br /> 一気に探して「これだけしかないのか」と思わずに、何度か検索してみてください。</p> <ol> <li>Google</li> <li><a target="_blank" rel="nofollow noopener" href="https://www.hellowork.mhlw.go.jp/">ハローワークインターネットサービス</a></li> </ol> <p>「求人情報検索」→「求人情報の種類」で「フルタイム」か「パート」を選んで<br /> 「検索」ボタンを押した後、詳細検索条件のフリーワードで指定します。<br /> キーワードはAnd検索がオススメ。</p> <p>3.<a target="_blank" rel="nofollow noopener" href="https://求人ボックス.com/">求人ボックス</a></p> <p>Googleで検索したら求人ボックスへのリンクが出てきます。<br /> ここで見つけたら、会社自身のホームページを探しましょう。</p> <p>5.<a target="_blank" rel="nofollow noopener" href="https://www.wantedly.com/">Wontedly</a></p> <p>Wontedlyはリモートワークを検索するのがちょっと難しく感じますが、<br /> 会社によっては熱い想いが書いてあったりして、その会社のことを知るにはいいかも。</p> <p>6.<a target="_blank" rel="nofollow noopener" href="https://www.find-job.net/">Find Job</a></p> <p>Find Jobは「在宅」カテゴリがあり、定期的に求人が入れ替わっているようです。<br /> 勤務地で在宅を選ぶより、キーワードで在宅と指定した方がたくさん見つかります。</p> <p>7.<a target="_blank" rel="nofollow noopener" href="https://mamaworks.jp/">ママワークス</a><br /> 8.<a target="_blank" rel="nofollow noopener" href="https://part.shufu-job.jp/tokyo">しゅふJOBパート</a></p> <p>この辺は「ママ」とか「しゅふ」って書いてあるけど、条件ではないようです。</p> <p>9.<a target="_blank" rel="nofollow noopener" href="https://www.reworker.jp/">Reworker</a><br /> 10.<a target="_blank" rel="nofollow noopener" href="https://www.green-japan.com/">Green</a></p> <p>Greenは正社員求人が多い印象です。</p> <h2 id="ちなみに"><a href="#%E3%81%A1%E3%81%AA%E3%81%BF%E3%81%AB">ちなみに</a></h2> <p>当前ですが、リモートっていいことばかりじゃないです。<br /> 「自由に作って」という100%お任せの仕事でない限り、「確認したいこと」は出てきます。<br /> 目の前に相手がいないので、ちょっと聞く、ということも難しい場合もあります。</p> <p>雑談をすることも少ないので、もしかしたら孤独も感じやすいかもしれません。<br /> まあでもやってみないと合っているかわからないので、興味があるなら探してみましょう。</p> <p>知りたいことや、質問などあれば、コメント欄にどうぞー。<br /> (答えられるかわかりませんが)</p> Hata tag:crieit.net,2005:PublicArticle/15520 2019-10-31T08:02:18+09:00 2020-02-06T11:44:52+09:00 https://crieit.net/posts/WEB-Heroku-Laravel-MySQL-SSL 全部無料でWebサービスを公開しよう!(Heroku + Laravel + MySQL + 独自ドメイン + SSL) <p><a href="https://crieit.net/posts/5-5d9c0ecabe849">サービスリリースしました(=゚-゚)ノ 週休5日のプログラマーは快適という話。</a><br /> 上記で紹介した、Webサービス、<a target="_blank" rel="nofollow noopener" href="https://www.myfavrecipe.ml/">My Favorite Recipe</a> の公開の手順を記事にしました。</p> <p>◼️はじめに (。・ω・。)</p> <p>私は初心者です。</p> <p>IT資格はわりと持っていますが、そんなの関係ありません。実務はほぼVBとVB.NETとVBAしかやってません。SQLもちょっとだけ。</p> <p>WEB系は設計書レビューした程度です。テスト設計ならもうイヤという程にはやりました。</p> <p>言い訳はこのくらいにして。</p> <p>◼️作ったサービスを(気軽に)公開できる場所</p> <p>LaravelでWEBサービスを作ってはみたものの、さてどこで公開するか?</p> <p>ということで、試しにHerokuというもの?を使ってみることにしました。</p> <p>私の事前知識は、Herokuって文字見たことあるけどなんて読むんだろう?まさかヘロクじゃないよね?程度です。(そのまさかの、"ヘロク"でした)</p> <p>◼️無料万歳 v(。・ω・。)v</p> <p>以下、すべて無料で揃いました。v(。・ω・。)v</p> <p>・Heroku + Laravel + MySQL</p> <p>・ドメイン取得は、Freenomを利用。</p> <p>・SSL(https)は、Cloudflare を利用。</p> <p>利用規約とか説明のための静的サイトは、Firebaseのhostingを使っています。</p> <p>html/cssテンプレートはf-tpl.comです。これらもすべて無料です。</p> <p>英語が読めなくても意味がわからなくても、無料ならとりあえず使ってみるの精神で挑戦しました。</p> <p>◼️事前に用意するもの</p> <p>・Laravel + MySQL で何か作る</p> <p>ちなみに「SQLite」もHerokuで使えます。</p> <p>◼️手順と参考にしたサイト</p> <p>検索したら、Heroku+Railsの記事が多かったです。<br /> Laravelでも(一部以外は)参考になるので活用しましょう。</p> <p>・Herokuにアカウント登録して、がんばる o(。・ω・。)o</p> <p><a target="_blank" rel="nofollow noopener" href="http://sizukutamago.hatenablog.com/entry/2016/10/21/heroku%E3%81%ABlaravel5%E3%81%A8Mysql%E3%81%AE%E7%92%B0%E5%A2%83%E3%82%92%E6%95%B4%E3%81%88%E3%82%8B">herokuにlaravel5とMysqlの環境を整える</a></p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/tamappe/items/a175596e9aec725e1d2d">Laravelをherokuにデプロイする(データベースはMySQL)</a></p> <p>・独自ドメイン取得して、</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.freenom.com/ja/index.html">Freenom</a></p> <p>「Freenom 使い方」でGoogle検索すると使い方載ってるサイトが見つかると思います!</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/kenjikatooo/items/07c3d911210a4ca96781">初めてHerokuで独自ドメインを公開するあなたへ</a></p> <p>・httpsで接続できるようにがんばる o(。・ω・。)o</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/serinuntius/items/f7f08b2221f5ad068f5d">【完全無料】Herokuで独自ドメイン + HTTPSに対応する【Rails】</a></p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/ai_qiita/items/0e334606709fb9deae87">【無料】Cloudflareを使ってHerokuで独自ドメインで運用する方法</a></p> <p>・MySQLを直で使いたいとき(自分のPCのMySQLの入っている環境でコマンドを実行しましょう)</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/akiko-pusu/items/305e291465d6aac04bf3">HerokuのDBにローカルPCからアクセスしたいんだけど...</a></p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/tocomi/items/0c009d7299584df49378">MySQL Serverに外部から接続する</a></p> <p>・Herokuはアクセスしないと寝てしまうみたいなので対策</p> <p><a target="_blank" rel="nofollow noopener" href="https://casualdevelopers.com/tech-tips/how-to-prevent-idling-of-free-dyno-on-heroku/"> Herokuの無料dynoをスリープさせないで24時間稼働させる4つの方法</a></p> <p>・おまけ (。・ω・。)</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/yacchi1123/items/963bdf12c9c4a7a8f67c">Firebaseを使って独自ドメインWebサイトを公開する方法</a></p> <p>◼️メモ書き程度の記録(役に立つかわかりませんが私のブログです)<br /> <a target="_blank" rel="nofollow noopener" href="http://marimoko3.hatenablog.com/">blog</a></p> <p>◼️ちなみに</p> <p>現在私は、MacでVagrant環境(CentOS)で開発しています。<br /> CyberduckでファイルをMacローカルにコピーして、それをGitHubに上げて、それをHerokuの管理画面でポチッとDeployしています。</p> <p>最初はコンソールからHeroku (Heroku Git) に上げていました(どっちでもいいのですが)。</p> <p>◼️よくわからないこと</p> <p>Vagrant環境でLaravelプロジェクトを作って、初回リリースは最初はLaravelプロジェクトを丸ごと載せてしまえばいいので問題ないのですが、<br /> 機能追加で、composer等で何か変更を加えた時に、何が変わったのかわからないと、本番環境に何を適用させたらいいのわからない、ということが起こります。</p> <p>composer、今何してるの?っていう(便利だけど何がどこに入ったのかわからない)。<br /> 新しいパッケージを入れて使うなどの場合も、本番環境への反映のさせ方がわかりません。<br /> プロジェクトフォルダを丸ごと更新するという技(?)で、ひとまず対応できますが・・・。</p> <p>◼️おわりに</p> <p>手順を全部書くと終わらないのでリンクで済ませてしまいましたが、何かあればココのコメントなどで聞いていただければ、だれかが答えてくれるかもしれません!? o(。・ω・。)o 応援してます!気が向いたらやってみてネ o(。・ω・。)o </p> Hata tag:crieit.net,2005:PublicArticle/15465 2019-10-08T13:21:30+09:00 2019-10-17T14:59:28+09:00 https://crieit.net/posts/5-5d9c0ecabe849 サービスリリースしました(=゚-゚)ノ 週休5日のプログラマーは快適という話。 <h1 id="WEBサービスリリースしました!(=゚-゚)ノ"><a href="#WEB%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%28%3D%EF%BE%9F-%EF%BE%9F%29%EF%BE%89">WEBサービスリリースしました!(=゚-゚)ノ</a></h1> <p>Laravelの勉強がてら作りました。本格的な(?)WEBサービスは、初めて作りました。<br /> heroku、Laravel、MySQL、Bootstrap、jQuery、使ってます。</p> <p>デザインに壊滅的に苦手意識があったので、改めてProgateで(ええ、あのProgateです!!)CSS勉強して、jQueryもざっとやって、Bootstrapも調べて、出来上がったのがこれです。</p> <p>「ネット上の料理のレシピ」を登録しておいて、「一週間の献立」を作れるWEBサービスです♪</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.myfavrecipe.ml/">https://www.myfavrecipe.ml/</a><br /> ※URL変更しました(2019/10/17)</p> <p>Laravel使ったことのある人なら見覚えのあるhomeに<br /> 「ぴよたそ」のイラストをお借りして作った素朴な入り口です。<br /> (ひよこテイストを活かしつつ、Laravelっぽさを消すデザイン力がほしい・・・)</p> <p><a href="https://crieit.now.sh/upload_images/629cc6128c7ff40f3cff0565dc461ace5da8033687d7c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/629cc6128c7ff40f3cff0565dc461ace5da8033687d7c.png?mw=700" alt="スクリーンショット 2019-10-17 14.58.49.png" /></a></p> <h3 id="というわけで使ってね!(=゚-゚)ノ"><a href="#%E3%81%A8%E3%81%84%E3%81%86%E3%82%8F%E3%81%91%E3%81%A7%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%AD%EF%BC%81%28%3D%EF%BE%9F-%EF%BE%9F%29%EF%BE%89">というわけで使ってね!(=゚-゚)ノ</a></h3> <p><a target="_blank" rel="nofollow noopener" href="https://www.myfavrecipe.ml/">https://www.myfavrecipe.ml/</a></p> <p><a target="_blank" rel="nofollow noopener" href="https://hata33.ml/MFRabout.html">使い方とかヘルプはこちら←</a></p> <h3 id="・・・で終わるとポエムでもなんでもないので、これからポエム始めたいと思います。(宣言)"><a href="#%E3%83%BB%E3%83%BB%E3%83%BB%E3%81%A7%E7%B5%82%E3%82%8F%E3%82%8B%E3%81%A8%E3%83%9D%E3%82%A8%E3%83%A0%E3%81%A7%E3%82%82%E3%81%AA%E3%82%93%E3%81%A7%E3%82%82%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%80%81%E3%81%93%E3%82%8C%E3%81%8B%E3%82%89%E3%83%9D%E3%82%A8%E3%83%A0%E5%A7%8B%E3%82%81%E3%81%9F%E3%81%84%E3%81%A8%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%EF%BC%88%E5%AE%A3%E8%A8%80%EF%BC%89">・・・で終わるとポエムでもなんでもないので、これからポエム始めたいと思います。(宣言)</a></h3> <h1 id="これまでのお話"><a href="#%E3%81%93%E3%82%8C%E3%81%BE%E3%81%A7%E3%81%AE%E3%81%8A%E8%A9%B1">これまでのお話</a></h1> <p>をお読みの方はご存知かもしれませんが、今年フルリモートの仕事を辞めました。</p> <p>その後は、派遣での仕事が決まり、行ったらまあ、これがまあいろいろと超大変で、即、辞めました。<br /> ええ、忍耐力、ないですね。ほんと。もうボロボロでした。</p> <p>でもまあ、働かないわけにもいかないので、6月末から新しい仕事をはじめました。<br /> (東京でもないのに、よくそんなに次から次に仕事決まるなーと、我ながら思います。)</p> <p>ほんと私大丈夫なんだろうか、、、仕事続けられるのだろうか、、、多分続かないよなー、<br /> じゃあなるべく日数が少ない仕事にしよう、と週3日の仕事を見つけて応募しまして。</p> <p>なぜか建築CADを使う仕事でした。CADなんてやったことないのに・・・JW-CAD使うと書いてあったので、図書館で本を借りてやってみました。線を引くのは楽しい(というレベルで応募)。</p> <p>研修も2ヶ月ぐらいあるって書いてあるし、学習レベルでいいって書いてあるし、何より同期もいるらしい、同期がいると続けられる可能性が高くなるし、と。なぜか経験ないのに受かるであろうと思って応募しました。</p> <p>それでとにかく電話して問い合わせたら、「CAD使ったことないんですかーじゃあ難しいかもー、聞いてみて大丈夫だったらこちらから連絡しますねー」と言われて。</p> <p>あーだめなのかなーと思っていたら、だめじゃなくて、面接に行ったら、あーVBできるなら、VBAも手伝ってもらいたい!!と言われて。</p> <h3 id="気付いたら、VBAが仕事になってました。"><a href="#%E6%B0%97%E4%BB%98%E3%81%84%E3%81%9F%E3%82%89%E3%80%81VBA%E3%81%8C%E4%BB%95%E4%BA%8B%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82">気付いたら、VBAが仕事になってました。</a></h3> <p>ちなみにVBAを仕事で使ったことはこれまでに一度も無いです。</p> <p>その職場でVBAができる人は上司一人だけでした。他の人たちはほぼCADメインです。<br /> その忙しい上司のお手伝いとして、いまは、次々に依頼されたものをせっせと作っています。</p> <p>ラッキーだったのは、その上司がとても丁寧な人で、細かく説明してくれるのもあって、とても仕事がやりやすいということです。それに同期も2人いました!(仕事内容違うけどね)</p> <p>ところが、、、<strong>真夏の炎天下の自転車通勤(片道30分)</strong>、<strong>週3日通うのは</strong>、私にとっては結構かなり辛かったのです。<br /> <strong>通勤が。。。</strong></p> <p>なので、本部に交渉して、日数減らしてもらって、</p> <h1 id="9月から、めでたく週2日勤務になりました♪(=゚-゚)ノ"><a href="#9%E6%9C%88%E3%81%8B%E3%82%89%E3%80%81%E3%82%81%E3%81%A7%E3%81%9F%E3%81%8F%E9%80%B12%E6%97%A5%E5%8B%A4%E5%8B%99%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E2%99%AA%28%3D%EF%BE%9F-%EF%BE%9F%29%EF%BE%89">9月から、めでたく週2日勤務になりました♪(=゚-゚)ノ</a></h1> <p>ボロボロだった私も、新しい職場で1ヵ月過ぎる頃には、メンタルも随分回復してきて、<br /> 大好きなプログラミング(とその勉強)を再開することができるようになりました。 </p> <p>7月末頃からLaravelをドットインストールで始めて、その後、Laravelの青本をやって、<br /> それからデザインがさっぱりわからないこともあり、ProgateでCSSとJavaScriptとjQueryをやって。<br /> ドットインストールでもBootstrapとかやって。(あれこれさっき書いたぞ・・・)</p> <p>この技術でこんなことができるんだとか、なんとなくわかるだけでもその後調べるときに役立ちますね。</p> <p>Laravelは構造を頭に入れるために、ドットインストールの手順を簡単にメモを書いておいて<br /> 見ないでスラスラ書けるように何回か繰り返しました。(=途中まではスラスラ書けるようになりました)</p> <p>「覚えないで良い」「調べれば大丈夫」って聞くけど、<br /> ある程度は理解しておかないと、わからないこと多すぎて、全部調べてたら何も進まないですよ。。。</p> <h1 id="「週休5日のプログラマー」になったよ♪(=゚-゚)ノ"><a href="#%E3%80%8C%E9%80%B1%E4%BC%915%E6%97%A5%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%80%8D%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%82%88%E2%99%AA%28%3D%EF%BE%9F-%EF%BE%9F%29%EF%BE%89">「週休5日のプログラマー」になったよ♪(=゚-゚)ノ</a></h1> <p>(言いたいだけ)</p> <p>最初、自分でも気付いていなかったのですが、よく考えたら、世間一般のフルタイムの人と真逆やん。</p> <p>お休みの週5日間は、ずっと個人開発ができますよ♪♪</p> <p>プログラミングは大好きだけど「作りたいものなんか何もない」とついこの前までは思っていて、絞り出さないと何も思いつかなかったのだけど、最近はボーッとしていると、あれも作りたい、これも作りたい、、、と出てきます。なんでや。</p> <p>お金持ちではないけど、時間持ちです。<br /> 自由な時間がたくさんあって幸せです。</p> <p>結局、ずっと開発かプログラミングの勉強してるけど。設計考えると眠くなるけど。<br /> 紆余曲折ありましたが、、おかげさまで、今はとても幸せです。</p> <h2 id="来年は、新日本プロレスをたくさん見に行けるようになりたいです(=゚-゚)ノ"><a href="#%E6%9D%A5%E5%B9%B4%E3%81%AF%E3%80%81%E6%96%B0%E6%97%A5%E6%9C%AC%E3%83%97%E3%83%AD%E3%83%AC%E3%82%B9%E3%82%92%E3%81%9F%E3%81%8F%E3%81%95%E3%82%93%E8%A6%8B%E3%81%AB%E8%A1%8C%E3%81%91%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%9F%E3%81%84%E3%81%A7%E3%81%99%28%3D%EF%BE%9F-%EF%BE%9F%29%EF%BE%89">来年は、新日本プロレスをたくさん見に行けるようになりたいです(=゚-゚)ノ</a></h2> Hata