なずブログ

インフラSE、Java開発、リモートワークエンジニアな人のメモ帳

スクレイピングまでがんばるVBA講座~その1.環境構築~

f:id:nazuna_0124:20180609224553p:plain

今日もおつかれさま!

忘れがちですけど、椅子に長時間座るのって

重労働ですからね!



おつかれさまです。なずなです。


というわけで、自分が覚えるのは飽きたので、

ちゃっちゃと出力していこうと。


ちゃんとしたものを作ろうとか考えると

めんどくさくなるので雑なテキストベースで

なんと画像すらありません!



この調子でスクレイピングまでこなしていきたいと思います。


本日の章はいわゆる環境構築。

Officeさえ入ってればどこでも使えるのが利点ですが、

少しだけ使いやすくするということと、若干の機能説明です。


Hello Worldまでやったことある人は飛ばしてよい内容になってます。


環境構築

・debug.print "Hello world" でイミディエイトウィンドウに表示する。
・Range("A1") = "Hellow World" でSheet1のセルA1に表示する

ある程度使い始めている人は省略してオッケーです。
基本的な使い方を含めて記載します。

リボンに開発タブ

 初期設定ではリボンに表示がありません。
 オプションのリボン設定で開発にチェックをいれてください。

VBEの起動

2種類あります。

    + ALT + F11
    + 開発タブ > VisualBasic

    多少Excelのバージョンによるかもしれません。
    稀にショートカットで起動しないときあります(バグ?)
    たいてい再起動するとなおります。

VBEの設定

+ イミディエイトトウィンドウを表示
    > Ctrl + G

+ 編集バーの設置
    > 表示 > ツールバー > 編集にチェック

    複数行をコメントアウトするときに使います。

+ オプション設定
    ツール > オプション

    [編集]
        ・自動構文をチェック のチェックをはずす
            お好みでいいです。

        ・変数の宣言を強制する
            なれないうちは必須。

    [エディタ]
        目に優しい。なんとなくカッコイイという理由により
        黒背景がお勧めです。設定箇所だけ参照して色はお好みでどうぞ。

        ・標準コード
            前景:白 背景:黒

        ・コメント
            前景:水色 背景:黒

        ・キーワード
            前景:ピンク 背景:黒

        ・識別子:緑 背景:黒


    以上でそれっぽい画面に変わります。

モジュール作成、プロシージャ作成

+ モジュール作成
    挿入 > 標準モジュール

    画面左下のプロパティで名前が変更できます。
    余談としてExcelVBEでは最初に数字は設定不可。Accessはできたりします。

+ プロシージャ作成
    ちゃちゃっと以下コードを書き込み。

    ``` VB
    Sub Sample1()

        debug.print "hello World"
        Range("A1") = "Hello World"

    end Sub


    ```
    命令の大きな枠をモジュール、小さい枠をプロシージャっていいます。
    名前がいちいち大仰ですね。

    モジュールは標準モジュールともよばれ「ここに書かないと動かない」という
    ケースもあるため覚えるだけ覚えましょう。


    プロシージャ名の「Sample1」は日本語も使えます。
    慣れないうちは普通に使ってしまって構いません。

    バグにつながる場合はありますので、慣れたらすべて英字にしていきましょう。

    [ほかの言語を知っている人のための補足]
        ・VBAでの文字列のくくりはダブルクォーテーションだけです。
            >エスケープするときは"" 2個並べるという方法です。
        ・変数の展開とかもなし。
        ・最後にセミコロンはいりません。
        ・行を分割したいときは _ (アンダーバー) でつなげます。

プログラムの実行方法

    上記までで簡単な命令書(プログラム)の作成ができました。
    つづいて実行方法です。

    イベントハンドラなんて言い方もしますが、「何をすれば」実行されるのかは
    重要なので意識しておきましょう。
    逆に「こういうときに実行させたい」ということも出てきます。

    今回は基本の3種類です。

    + F5キー
        実行したいプロシージャにカーソルを合わせて押すだけ。

    + (Excel画面に戻って)Alt + 8 実行するプロシージャで実行


    + ボタンにマクロ登録

        ボタンは3種類です。

        1. ボタン(フォームコントロール)
        2. ボタン(ActiveX)
        3. 図形

        1,2は開発タブの挿入。
        3は挿入タブです。

        2だけ省略。ほかは設置してから右クリック>マクロ登録
        実行したいプロシージャを選択します。

        開発タブのデザインモードになっていると押せないので注意!



    ほかの実行方法は後述します。一例として紹介。
        ・○○(たとえばセル)の文字列が変化したら実行
        ・一定時間毎に実行
        ・規定時間になったら実行

    ほかのプログラムから呼び出して実行

シートを切り替えてF5を押してみる。

        VBEの機能の一つです。省略されているものは勝手に解釈する場合があります。

        表示しているシートをSheet2に切り替えて押してみてください。

        Sheet2のA1セルに入力されます。
        表示しているシートのA1セルだと勝手に解釈しています。

        当然プログラム側としてはこれでは困る場合も多いので、
        特定の場所の場合はきちんと省略せずに書いて引く必要があります。


        省略されることを覚えてください。
        オブジェクトの指定方法は次章で説明します。

参照設定

    VBEの機能としても覚えてください。
    ぐぐってコピペしたのにエラーがでる!なんて場合は
    ここの設定が足りない場合があります。

    一例としてよく使う Scripting Runtimeの設定をします。


    ツール>参照設定

    (いっぱいある中から)
    Microsoft Scripting Runtime にチェック。 > OK


    ちょっとした外部機能を使うにはここにチェックが必要くらいに覚えてください。
    また、ここで設定されていると自動補完がきいて入力が楽になります。

マクロブックで保存

    忘れると全部消えます!!!

    Excelの古いバージョンであれば拡張子「xls」だけですみました。
    今は「xlsx」だとマクロなしなので「xlsm」に治して保存しないといけません。


    これはファイル名が変わるということです。
    VBAになれて業務改善ができるようになっても、みんなで使っているファイルだと
    ショートカットが切れて嫌がられるなんて場合もあります。

とにもかくにも書くところまでは以上です。 黒い画面でプログラム書くのはなんとなくかっこいい!!ってことで

続きは次回に。

成長するのに飽きた

f:id:nazuna_0124:20170508224646p:plain

今更ながら最近感じ始めました。

わたしの会社は中小ですが、やや上のほうだと。


極端に下ではないから仕事は悪くないですが、

スキルアップが評価には繋がりにくいかもしれません。



おつかれさまです。なずなです。



さて、本日は自己分析の日。


とことんやる気がありません



一方で出番があればたんたんと


新しい仕事もいつも通りに覚える



なんていうかもう、新しいことを覚えて

できることが増えることに面白みを感じてないらしいです。



どおりでゲームとかも一気にやらなくなるわけです。



こうなると行動原理は

ちょっとした心地よさくらいです。



ちゃんと干した布団きもちいい!

とかそういう。



そう考えていくとプログラムもVBAは結構見てて気分がいいです。


なんていうかね。ほら。

かちゃかちゃ、ぽち。で、すぐ動くとことか!



新しい言語覚えようかという説もありましたが、

一切気にしないことにしようと思います。

無駄ミーティングを乗り切ろう

f:id:nazuna_0124:20180628180849p:plain

最近すっかり目が死んでるという噂が立っています。


むしろ脳が死んでます



おつかれさまです。なずなです。



最近いろいろとミーティングに参加する機会が増えてきました。


会議ではないのがポイント。何か決めるわけじゃないんです。



要するに、その場で質疑応答可能な全体周知共有

として使われてるっぽい。



そのために決まった時間に一同に集めるなんて

みんなも暇なんですね



とりあえず、わたしのタイピング速度をもってすれば、

全部入力しとくのはわけないので

死んだ目でタイピングしてますけれど。



一昔前なら、もっとこうIT技術使おうよ!!

とか言い出すところですが、

暇なので別に効率よくする必要がないというね。



ギルドのレイドでももうちょっと上手くやってましたが。

あれは時間が貴重だから当たり前でしたね。



タイピングも飽きてあまりにも暇になったらどうするか。


そんなときこそ、どこでも使えるVBAですよ


と謎方面からのVBA推しをして本日はおつかれさま。

ブログを書くモチベーションとは

f:id:nazuna_0124:20180628180849p:plain

去年の年収を計算してみたら、無事400万円こしてました!


がんばって残業してようやく300万を超える程度の

非正規時代とはえらい違いです。



予測の範囲内の大成功というかんじですな。



というわけで、おつかれさまです。

なずなです。



ブログ開始以来の1週間空いての投稿です。


皆様いかがお過ごしでしたでしょうか。



わたしはまぢでなんの変哲もないまいにちでした。



また、心理的にもちょっといろいろ変化がありまして。



よくわかんないし、関係ないなとか思い始めると

だいたいのことがどうでもよくなるという。



やっぱり、言いたいことがある

表現したいものがある


もしくは誰かと繋がるために発信したい。



このあたりは根源的なモチベーションですね。



それに加えてなんですけれど、わたしの最大のモチベーションは

過去の自分へのアドバイスでした。



わたしはいわゆる長子ですので、

何か覚えるときは必ず後に続くものが楽になるように

勉強しちゃうんですよね。



これをやめたら一気にブログ書きたいことがなくなったっていうね。



ただ、すごくわずかですが更新してない間は

アクセス数がすくなくなってた気がしなくもありません。


手なりで読んでた人もいるかもしれないってことで、

ぼちぼち更新してみようかと思います。

それほんとにVBA使うほうがいいの

f:id:nazuna_0124:20170403224602p:plain

ひーまーひーまーひーまー

ドラマチック症候群をやめようと決めたのはいいものの

平和って退屈です。こまったもんです。



おつかれさまです。なずなです。



さて、今回はVBA話。

暇なら前々から言ってるVBA講座でも作れって話なんですが、

なんだか手につかないので、分析かねてです。



ほんとに役に立つのか疑ってるというのが大きなポイントです。



最初に唯一の結論。自分の業務負荷を減らすこの1点においては

非常に有効です。


問題は減らしてるのは負荷です。

ちゃんと工数が減ってても目的は負荷だと捉えるべきです。



なんでわざわざ違う言葉で表現するかというと、

工数削減が評価されるとは限らないからです。



わたしがVBA学び始めた当初の遠い目標に2つがありました。


業務改善で社内評価があがるかも


これでプログラム学べばIT業界に転職できるかも



これです。


前者は社内の雰囲気的な立場は大きくあがり

仕事はやりやすくなりましたが、給与には反映されずに退職。



後者は結果的に職業訓練が転記だったのでそれほど役に立ってない。



こういうことですね。


Accessを学んでいたことでデーターベースの理解も早く

下地としてはよかったんですが、最初からそっちでいいじゃんってのがね。。。



ともあれ、最近回ってきた1日6時間くらいの単純作業を

ちゃちゃっと5時間くらいで終わるようするのは楽です。


1日1時間暇な時間作れたってのは自分は楽です。


そういう意味ではよかったんですけどねー。



すっかりまとまりがない話になってきてしまいました。


ぐだぐだ言ってないで手を付けてみますか!!!

タスクわけが非常に細かいインフラエンジニア

f:id:nazuna_0124:20170406201732p:plain

工数削減というより業務負荷軽減にVBAの出番があります。

全力を出せばで1時間で50件で終わる仕事。

のんびりやると2、30件になりがち。


これを常に45件にしたりするみたいな。



おつかれさまです。技術よりアイディア勝負のなずなです。



さてさて今回は常々おもうインフラエンジニアの

就職のハードルの高さと実際の業務の簡単さに整合性が取れてないので

そんなお話。



仕事が簡単すぎる



で、これもやっぱり着任場所によるみたいです。


人数が多くてタスクわけされてると一つの仕事が小さいんです。


これは分量もそうですが技術的な意味もあります



ずっと同じチームにいると技術的にあんまりのびないんですねー


構築と運用保守は分かれてるのは割と普通ですが

小さいところだと両方触るでしょうし。



そもそも運用保守の場合は規模が大きいので

それはそれでちょっと特殊です。



そんなわけで、幅広い技術習得をしたい場合はしっかり声をあげないと

いろいろ触れないです。


一方で特にDBなんかですが自分の得意分野だけ触っていられるともいえる

かもしれません。



いずれにしても、IT技術という一般的な知識で通用する事務だと

思い始めてるので、だいたいそんなかんじです。

結局インフラエンジニアってなんなの

f:id:nazuna_0124:20180628180849p:plain

誰かが言ってました幸せは暇である


今のわたしは大分シアワセらしいですよ。



おつかれさまです。なずなです。



職業訓練の就職活動中に決めてました。

インフラエンジニアにはならない

開発もいやだ。



受け取った内定の職種みてびっくりですよねー

インフラエンジニアって書いてあるんですもん。



んで、結局インフラエンジニアってなんなの?ってなりますが、

くくりとしては外科医くらい幅が広いです。



わたしがいるところをもう少し絞ると。

・SESのとこ(客先常駐というやつ)


・割と大きめのデータセンター



大きいところかどうかは職場の雰囲気に多少影響が

あるように思えます。


注意点として。


夜間作業(20時~朝の7時)があります。


2交代、3交代の工場チックなシフト制なチームが存在します。



オフィス内作業なのでいうほどしんどくはないですが、

生活リズムもあるので体調に自信がない方は注意です。



そのつぎ!

障害の対応ということで、緊急作業はちょこちょこあります。


電話やメールが入ったりが起点ですね。


誰かのミスが原因で引き起こされたりすると

あとで報告や分析なんかで仕事が増えます。



あ 当たり前ですけれど。仕事はほとんど座ったまんまです。


確認以外はあんまりしゃべる機会がないともいえますね。


それぞれミーティングやらで席をはずす機会はあるので、

休憩回数を把握されたりはしてないです。


トイレの回数が多いとかみみっちい小言は言われないです。


お客さんと呼ばれる人と話す機会はあんまりないです。

リーダーになるとまた変わりますけれど。



お客さんに怒られるというタイプの嫌な思いは滅多にないです。


上司は運しだいなのは他の仕事もおんなじですし。



暇な時間は全体的におおいです。


ここでSESってのが影響してきます。

工数をあまり下げすぎると人がいらなくなって売りあげがおちます



年間で数%みたいなゆっくりした改善がベストでしょー



転職はわりと楽です。

技術もさることながら信頼性が何より大事

それには一番わかりやすい指標が経験年数だからです。


1回はいっちゃいえば、だいじょうぶ。

なにせ似たような会社はいっぱいあるので



人売り商売と揶揄されますが、わかりやすく自分は商品なんですな。


辞められるよりはいいってことで、部署異動なんかも比較的柔軟です。



仕事の動きのリズムが性にあってるかは結構大事です。


たん、たん、たん、たん、たん、タタタタン(障害発生)、たん、たん、たん


ぐらいのリズム。



安定した生活をゲットするのに運要素は

上司ガチャだけと言えます。


状況次第でなかなか有望な選択肢です。



仙台でインフラエンジニアやってみたい方は

ツイッターでDMでも送ってみてください。