warizakiの低燃費日記

低燃費な方法でみなさんが幸せになれる方法を探っていけたらと思います。

とりあえずPARSONAL.XLSBは作った方が良いと思うよ

目次

暇な時間はプログラミングしよう

ぶっちゃけ最近仕事暇な日が多いです。そういう時は何をしているか? 自分のスキルを高めるためにプログラミングをしています。プログラミングは様々な効能があります。①時間潰し②スキル上げ③職場の生産性向上です。コスパ良いです。もしこのブログを読んでいる子が普段パソコンを使ったお仕事をされていて、どうしようもなく暇なとき、プログラミングをやってみると良いかもしれません。warizakiは社員さんの監視の目を潜り抜けながらひっそりプログラミングしています。(そこまでやる意味)

しかしながら職場でできるプログラミング言語は限られます。多分VBAしかできません。あとプログラミング言語って言っていいのか分からないですが、コマンドプロンプトでごく簡単なバッチを作れるくらい。CやJAVARubyPHPなど、世の中にはプログラミング言語が溢れていますが、どの言語もそれなりに開発環境を整えてあげないといけない、つまりフリーソフトをインストールしないといけないので、職場で単独で開発するのは難しいのです。※逆に会社を説得してソフトをインストールされている方がおられたらすごいビックリです。尊敬します。

gijin2

https://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002412 より抜粋

事務作業自動化への道

一方、エクセルは大抵の職場に入っているはずです。そしてコマンドプロンプトはOSがWindowsであるかぎり絶対に入っています。コマンドプロンプトの進化系的なパワーシェルでもよいと思います。(warizakiもパワーシェル勉強中です!使い勝手よさそう(^o^))

事務作業のルーチンワークVBAとCMD(PowerShell)があれば、ほとんど事足りると思います。(warizakiは技術力がないのでなかなか手作業から脱出できませんが…トホホ…)

【自動化できる作業】

  • 転記作業→VBA
  • 集計作業→VBA
  • グラフ作成作業→VBA
  • outlookメール自動送信
  • フォルダ作成→FSOありきのVBA or CMD
  • 大量のファイル名変更を一括で行う→CMD  etc...

【本作業のお手伝いをしてくれる補助作業】

  • 作業で参考しないといけないフォルダを一括表示させる→CMD
  • 一括PDF化→PowerShell(多分) etc...

【プログラミングじゃなくてエクセルの機能だけでできる作業】

  • タスク管理→日付系の関数
  • 宛先が違うだけで他は同じデータをまとめる(送付状など)→VLOOKUPなど etc...

【パソコンにお任せできない作業】

  • デザイン系の作業
  • 紙媒体のものが絡んでくる作業(データ入力など) etc...

途中で出てきた「FSO」っていうのは、「FileSystemObject」のことです。分かりやすく例えると、装備させると炎系魔法が使えるようになる指輪、みたいなものです。VBAにFSOを装備させることで、ファイル管理系のプログラミングが書けるようになるのです…!(厳密に言うとFSOがなくてもファイル操作はできるのですが、汎用性の低いやり方なのでここでは割愛します)

VBAは色々な場所に書けるよ

「いきなりそんなこと言われても…」って感じがしてきました。FSOという単語は今覚える必要はございません。

もっと根本的な話にしましょう。

エクセル上でAlt + F11を押すと、VBAを書ける画面が出てきます。

左側には何やら色々ならんでますね、

f:id:warizaki:20170827180948p:plain

実はVBAは色々なところに書くことができます。

  • Sheet1、ThisWorkbookに書く

シートやワークブックに書く内容はボタンをクリックした時の動作(イベント)など、限定的。「ユーザーフォーム」などの単語が出てくるとき以外は、ここに書く必要性はあまりないです。

  • 標準モジュール

f:id:warizaki:20170827181720p:plain

最初はここで書きましょう。ネットに落ちてるサンプルは基本的に標準モジュールでの記述を前提に書かれていることが多いです。※だけどここで書いた内容は、この標準モジュールが入っているエクセルデータでしか使えないから気を付けてね。

  • クラスモジュール

f:id:warizaki:20170827181751p:plain

オブジェクト思考に特化したプロ御用達のモジュール。よくわかんないけど商品用のVBAを作るときはこっちを使うんですかね? いたいけな女の子には関係のない世界です。

  • PARSONAL.XLSBの標準モジュール

warizakiはここで一番書いています。さっきの標準モジュールとの違い、ここで書いた内容は開いたエクセル全てで実行することができます。たとえば「1.xlsx」ていうデータと「2.xlsx」ていうデータがあったとして1.xlsxに書かれた標準モジュールは2.xlsxで実行できないけど、PARSONAL.XLSBの標準モジュールに書かれたものは1でも2でも実行できるってことです。慣れてきたらこっちで書くのもよいよ。

~PARSONAL.XLSBの作り方~

①自動マクロ記録ツールを起動

f:id:warizaki:20170827182018p:plain

②マクロの保存先で「個人用マクロブック」を選択

f:id:warizaki:20170827182043p:plain

③適当に動かして終了(何もしないで終了すると普通のモジュールしかできないから注意!)

f:id:warizaki:20170827182454p:plain

④出来上がり!!!

f:id:warizaki:20170827182654p:plain

あとは保存すればよいよ。

f:id:warizaki:20170827183426p:plain

ちなみに出来上がったPERSONAL.XLSBは

C:\Users\(ユーザー名)\AppData\Roaming\Microsoft\Excel\XLSTART

に保管されるので、ちゃんとできているか見てみよう!

書く場所が分かったところで、次回は実際にプログラミングを書いてみましょう!