dods’ blog - 今と昔のノートブック

今の記録は情報提供。昔の記憶は話題提供。気ままに記します。

Micorsoft の VBA について話す (5)

このタイトルでの記事も5回目となります。4回目の前回は、エクセルでVBA初歩の初歩を始める想定で書きました。ひょっとすると、VBAなど知らないけどあの程度のことならワードの「差し込み印刷」でできる、と思った方もいるかもしれません。

 

その通りで、ワードで個別の文書を印刷するのに「差し込み印刷」は便利な機能です。ただ、元になる数値が刻々と変わり、それをダイナミックに処理して個票に反映させるような印刷はワードの手には負えないと思います。

 

さて、VBAをあれこれ研究するうち、前回も少し触れましたが、ActiveXコントロールによるユーザーフォームの活用がやりたい幅を広げる突破口となることに気づきました。今回の記事ではその内容に深入りしませんが、ぜひ紹介したい当時のレファレンスはこの本です。

 

 

今ではこのように版を重ねているようです。

 

かんたんプログラミング Excel 2010 VBA コントロール・関数編

かんたんプログラミング Excel 2010 VBA コントロール・関数編

 

 

さて、VBAの応用編でもうひとつ、前回も触れましたが、エクセルで「イベント処理」を組み込んだシートをつくることで使い勝手の可能性がずいぶん広がるのだと知りました。そこらへんの話を次回、展開する予定です。

 

机上のパソコン環境が劇的に向上する

今の仕事についてから1年余り。机上の2台のノートパソコンを常に使わなければなりません。しかも、それぞれにあるデータを他方に移す仕事が毎日十数件。ところが、この2台はそれぞれ別系統のネットワークに属していて、データの移動は簡単ではありません。

 

f:id:dods:20180417211906j:plain

http://reusepcshop.ti-da.net/e10066694.html

 

イメージで言うとこんな感じなので、参照させてもらいました。同じ職場、というか同じ机の5cmも離れていないこの2台のノートPC。異なるイントラネットに属しているせいで、一方のデータを他方に移すにはUSBメモリを使わざるを得ないのです。

 

メールで送ったら? と思うでしょう。でも最近のセキュリティガードは厳しく、イントラネット外からのメールは添付ファイルを一切削除されてしまいます。そんなわけでこの1年間、日に何往復もUSBでデータのやりとりをしていました。

 

4月から自分と同じ仕事に就いた3月までの同僚に、USBのデータ移動が大変だろうと聞いたら、USB切替器でなんとかやってるよ、との答え。USB切替器? 早速ネットで調べて自分も購入しました。

 

 

正直言って、こんな便利なものをなぜ1年間使わずに過ごしてしまったのかと、後悔しています。USBだけでなく、無線マウス、無線キーボードもこの切替器に接続することで、我が机上のパソコン環境は劇的に向上しました。

 

あまりいないかもしれませんが、パソコン環境が自分と同じ状況にある方には絶対にお勧めの商品です。

 

 

 

 

 

Micorsoft の VBA について話す (4)

VBAについて何回か記事にしてきました。最初の入り口こそ、解説書に頼りながら基礎から勉強した自分でしたが、その後は実際の仕事で活用し、知識を広げてきた感じです。今風の言い方をするとOJTですね。

 

このエクセルの処理はきっとマクロを使えば早いはず、きっと誰かがすでに試みているはず、などと当たりをつけて調べるとやっぱり解決法が見つかる。そんなパターンを繰り返しているうち、結果的にVBAの勉強が進んだ気がします。

 

関数処理なのにセルには関数を残さない方法をマクロにやらせたり、複雑な分岐をユーザーフォームで解決したり、イベント処理でマクロを裏で働かせたりと、すべて仕事上必要があって、あれこれ調べて分かったテクニックです。

 

ただ今日は実際にVBAの中身に触れる1回目なので、そんな高度な話はありません。そもそもVBAで何ができるのかを、年賀状ソフトの仕組みをなぞりながら説明していきます。

 

VBAを使うと楽ができる

 

年賀状ソフトで無くてはならないのは住所録です。住所録というデータベースから、一人ひとりの名前、住所などを引っ張ってきて年賀状を印刷しているわけです。でも、印刷は1枚ずつではなく、いっぺんに済ませられる。というかそのために商品なわけです。

 

VBAができることはいろいろあるのですが、分かりやすい活用法として、この年賀状ソフトのように連続印刷、つまり1枚1枚印刷する手間をはぶいてもらう技で使えます。そこで、エクセルの画面を使って、簡単にそのやり方を説明していきます。

 

住所録の用意

 

Sheet1に住所録を10人分だけ用意しました。もちろん名前は架空のものです。今回は疑似個人情報データ生成サービスを利用させてもらいました。

 

f:id:dods:20180415173631j:plain

 

お客様カードをレイアウト

 

今回はお試しなので、郵便番号、住所、名前だけが一枚のカードとして印刷されるよう、Sheet2にレイアウトします。住所録から参照するために、VLOOKUP関数を使っています。赤字で注釈を入れておきました。

 

f:id:dods:20180415174102j:plain

 

VLOOKUP関数をご存じなら、Sheet1のセルA1に連番10が入るとカードになぜ赤坂様とその住所が表示されるのかはお分かりでしょう。

 

そして、これからやりたいことも見えてきませんか? そう、このセルA1に1、2、3…10と数字を入れ、その都度印刷してゆく処理をマクロにやらせるわけです。

 

VBAの起動

 

ここからは聞き慣れない用語が多いかも知れません。先ずはVBAを起動させます。「開発」タブのリボンの一番左のアイコン Visual Basicをクリックすると起動します。

 

f:id:dods:20180415175625j:plain

 

そもそも自分のエクセルには「開発」などというタブはない! という方は[開発]タブを表示するを参照してください。また、ショートカットもあり、Alt + F11 で行けます。

 

標準モジュールの挿入

 

VBAが起動すると次の画面が現れます。

 

f:id:dods:20180415181110j:plain

 

メニューの挿入(I)、標準モジュール(M)と進むと、右側にマクロを入力するスペースが現れます。

 

f:id:dods:20180415181701j:plain

 

迷子になってしまった方、VBAの起動について詳しく知りたい方はマクロはどこに書くの(VBEの起動)が参考になります。

 

マクロの記述

 

いよいよ連続印刷のためのマクロを記述します。今回はたったこれだけです。

 

f:id:dods:20180415182213j:plain

 

 素人の私でも、これくらいだと、自分が過去に書いたマクロとかを参照しながら、すぐ書けます。DimとかRangeとかValueとか、詳しく知りたい方はぜひ、ネットや専門書で何のことなのかを調べて、私のようにVBAの世界にはまってください。

 

連続印刷成功

 

ともかく、こんな簡単なマクロでも、メニューの実行(R)、Sub/ユーザー フォームの実行、と進むとちゃんと働きます。結果は次の通り。

 

f:id:dods:20180415182946j:plain

f:id:dods:20180415183003j:plain

 

画像にとる都合上、プリンタではなくPDFへ出力しましたが、連番1の森岡様から10の赤坂様まで次々現れました。

 

保存は拡張子.xlsmで

 

せっかく作ったマクロ入りのファイルをちゃんと保存するには保存形式を選ばなければなりません。Excelマクロ有効ブック(拡張子.xlsm)を選んで保存しましょう。なお、古くからエクセルに馴染んでいる方はご承知でしょう、エクセル2003までの保存形式である、拡張子.xlsでもOK。

 

 

 

春の銀杏

花を散らして一時の注目からは外れた桜ですが、当地ではいつのまにか、緑鮮やかな若葉をいっぱい茂らせています。

 

そういう意味では、金色に輝く秋ばかりが注目される銀杏の木ですが、我が通勤経路の銀杏並木ではちょうど今、可愛い葉っぱを広げ始めています。

 

土曜日ですが休日出勤で職場に向かう途中で写しました。それにしても、花を咲かせるわけでもない春の銀杏など、以前は全くの関心外でした。関心の赴く先とか、興味のテリトリーは変わるのではなく、加わるのだと最近知りました。

 

f:id:dods:20180414203828j:plain

 2018.04.14 Fujifilm FinePix F10

 

f:id:dods:20180414203854j:plain

 2018.04.14 Fujifilm FinePix F10

曲線が強調された建造物にも自分は弱かった

休日、溜まった家事に追われる傍ら、お昼はお弁当を買ってきて済ませてしまうことの多い我が家。今日も私が買い出し要員。いつも行くお弁当屋さん近くに、ちょっとシャレたビルがあり、ずっと気になってました。

 

お弁当を注文し、出来上がりを待つ間、店の外に出てその気になるビルを今日は写真に撮ることに。撮った写真を眺めていて、何でこの建物がそんなに気になっていたのか、その理由が分かってきました。

 

f:id:dods:20180408203124j:plain

 2018.04.08 Fujifilm FinePix F10

 

f:id:dods:20180408203546j:plain

 2018.04.08 Fujifilm FinePix F10

 

この建物の特徴は曲線が強調されていること。本来、縦横がハッキリした建造物に自分は関心があると思っていたのですが、自分はこの手の建物にも弱かったのだなと再認識した次第。ところでこのビル、なんだか分かりますか?

 

写真の所々にヒントがありましたね。そう、このビルには学習塾が入っています。仕事のテリトリーと重なっていることも、このビルが前から気になっていた理由の一つです。

 

何年か前、今日と同じくお弁当買い出し要員としてこのビルを通ったら、看板などを臨時に架け替えて、ドラマのロケが行われていました。後で確認したら、そのビルの設定はやっぱり学習塾でした。