【入門編】 初心者向け EXCEL VBA (1/10) – 今年こそ使えるようになりたい人

今年こそ VBA を使えるようになりたいと思っている人も多いだろう。

そういう貴方のために、全10回のシリーズで、EXCEL VBA の入門講座を執筆したい。

そういうサイトは沢山あるので、ここでは例題を中心に実践的かつ即戦力になるワテ流の入門講座を目指している。

ちなみに、ワテはVBAは得意だと思う。大抵の事は出来る。

VBAだけでなく、Office COMアドインというのも作れる。

現在のところ、以下の7つのEXCEL VBA講座がある。

第一回目 【入門編】 初心者向け EXCEL VBA (1/10) – 今年こそ使えるようになりたい人
第二回目 【入門編】 初心者向け EXCEL VBA (2/10) –実際にVBAを開発する手順はこれだ‼
第三回目  【入門編】 初心者向け EXCEL VBA (3/10) – EXCEL VBAのFor Nextループをマスターする
第四回目 【入門編】 初心者向け EXCEL VBA (4/10) – EXCEL VBAのFor Nextループで文字列を置換する
第五回目 【入門編】 初心者向け EXCEL VBA (5/10) – VBAユーザーフォームは男のロマン【これで完璧】
第六回目 【入門編】 初心者向け EXCEL VBA (6/10) – 現在のシートを加工して新シートを作成する【前半】
第七回目 【入門編】 初心者向け EXCEL VBA (7/10) – 現在のシートを加工して新シートを作成する【後半】

当記事はその第一回目。

手作業で何時間もかかる作業もEXCEL VBAを使えば一瞬で完了する。

その驚きの体験をして頂きたい。

プログラム初心者、未経験の人でも簡単に出来る。

サンプルVBAダウンロード

本ページで使用したEXCELファイルをダウンロードしたい人はここからどうぞ。

VBAとは何か?

VBAとは、EXCELに無料で付属しているプログラミング言語であり、その正式名称は

Visual Basic for Application

である。でも略称の VBA のほうが一般的だ。

コンピュータの世界には、Basic言語というのがあり、それをEXCELに組み込んだものが VBAなのだ。

EXCELだけでなくWord, PowerPoint, Access などマイクロソフト社製のMicrosoft Officeシリーズに搭載されているのでExcelでVBAをマスターすれば、AccessのデータをVBAで操作する事も出来るようになる。

ちなみに Visualとは何か?

Visual と言う英単語には視覚などの意味がある。

Basic言語にユーザーインターフェースの作成機能を追加したものがVisual Basicである。

つまりワテ流に解釈するなら、下図に示すような画面をパソコンに表示出来る機能を持つのがVisual Basic。視覚に訴えると言う事かな。

ユーザーインターフェースは英語では UI (User Interface)あるいは GUI (Graphical User Interface) などと呼ばれる。

具体的には、こんな感じの操作ボタンやチェックボックスなどを備えたダイアログだ。

即席で作ってみた。

2016-01-07-user_form2

こういう操作パネルを自分で作成してボタンをクリックすると目的の処理が実行出来るなどの対話型のユーザーインターフェース機能を作成出来るので Visual Basic と名付けられている。

そのVisual BasicのEXCEL版がVisual Basic for Application。

略してVBAだ。

そのVBAを作成する為に用意されているのがこんな画面だ↓。

2016-01-07-user_form1

EXCELに無料で付属している高性能な開発環境だ。でも殆どの人は使っていない。

その存在すら知らない人も多いだろう。

あなたも、こういうユーザーインターフェースを自作出来るようになり、作成したGUIのボタンをクリックするだけでVBAプログラムを呼び出して EXCEL データを自由自在に操れるようになるのだ。

スポンサーリンク
トラ子

VBA入門 第一回目の例題

では、例題を解きながらVBAをマスターしよう。

これを読めばあなたも必ずVBAが書けるようになるだろう。

以下ではEXCEL2010を使っていますが、どのバージョンのエクセルでも同じように出来ます。

例えば、おかき好きのワテは、全国のおかきメーカーの調査をしてこんな表を作成してみた。

この上の表を、下のようにしたい。

つまり、各会社の名前(B列)にその会社のウエブサイトアドレス(C列)のリンクを張るのだ。

マクロやVBAが使えない人は、一つずつ手作業で貼る事になる。

こんな感じだ。

まず、アドレスを選択してコピーする。

目的の会社名を選択して右クリックメニューのハイパーリンクを実行する(下図)

浪花屋製菓(株)に先ほどコピーしたアドレスを割り当てて、OKボタンをクリック(下図)

リンクが張れて文字が青くなった(下図)

これで完了だ。

試しに青い文字をクリックして見ると浪花屋製菓さんのサイトが開いた。うまくリンクが張れている。

ちなみに、浪花屋製菓さんは、柿の種で有名な会社だ。

ワテは、この会社の柿の種が大好きだ。ピリ辛くて美味いのだ。

さて、柿の種はVBA勉強の後に食べるとして本題に戻ると、一つの会社にリンクを張るだけで数回のマウス操作やキーボード操作が必要になる。

会社の数が10個くらいなら、全部手作業でも出来なくは無いだろう。

1000社くらいあったらどうするか?

そんなもん、手作業なんかでやってられない。

そういう時には、諦めて寝るかな。

そういう訳には行かない。

明日までに作成せなアカン。

必死で5時間くらいマウスとキーボードをひたすら操作し続ければ出来るかもしれない。

練習用のデータ

新潟県米菓工業協同組合   〒940-0048 新潟県長岡市台町1丁目8番4号
さくら製菓(株) http://www.sakura-do.jp 〒957-0058 新発田市西園町1丁目11番22号
(株)栗山米菓 http://www.kuriyama-beika.co.jp 〒950-3134 新潟市北区新崎2661番地
(株)三幸 http://www.sanko-seika.co.jp 〒950-3134 新潟市北区新崎1丁目13番34号
亀田製菓(株) http://www.kamedaseika.co.jp 〒950-0198 新潟市江南区亀田工業団地3丁目1の1
吉沢製菓(有) http://www.gosennet.com/~yoshizawaseika/ 〒956-0852 新潟市秋葉区柄目木101番地
(株)末広製菓 http://suehiroseika.co.jp 〒953-0131 新潟市西蒲区西長島779番地
浪花屋製菓(株) http://www.naniwayaseika.co.jp 〒940-1104 長岡市摂田屋町2680番地
越後製菓(株) http://www.echigoseika.co.jp 〒940-0056 長岡市呉服町1丁目4番地5
加藤製菓(株) http://www9.ocn.ne.jp/~kato.k.k/ 〒940-1106 長岡市宮内8丁目8番18号
岩塚製菓(株) http://www.iwatsukaseika.co.jp 〒949-5492 長岡市浦9750番地
阿部幸製菓(株) http://www.abeko.co.jp 〒947-0026 小千谷市上ノ山4丁目8番16号
竹内製菓(株) http://www.takeuchiseika.com 〒947-0003 小千谷市大字ひ生乙1672番地
(有)山文 http://www.echigo-yamabun.com 〒949-7403 魚沼市根小屋1441-1
(株)ブルボン http://www.bourbon.co.jp 〒945-0011 柏崎市松波4丁目2番14号
(株)新野屋 http://www1.ganba716.net/modules/aranoya 〒945-0055 柏崎市駅前1丁目5番14号
(株)みながわ製菓 http://www.minagawa-seika.co.jp/ 〒943-0882 上越市中田原111番地

表 1 新潟の主なオカキの会社一覧(この表をコピペしてエクセルに貼る)

これをEXCELに貼り付けて練習する場合には、貼り付ける位置もこのページの例と同じにして下さい。

もし行や列の位置が異なると正しく動きません。

おかきデータをエクセルに貼り付けて準備する

具体的には上の表1の左上の「新潟県米菓工業協同組合」の位置から末尾までの文字をマウスで選択してコピーします(下図)。

これは画像です↓

excel-okaki-copy

マウス右クリックで表1をコピーした状態で、エクセルのセルのB3を選択して、

元の書式を保持

で貼り付けます(あるいは書式を保持しなくても構いません)。

excel-okaki-paste-here

B3セルに無事に貼り付ける事が出来ると下図のようになります。

excel-okaki-paste-done

このようになれば準備完了です。

いよいよVBAを使ってハイパーリンクを自動で張るプログラムを書いてみましょう。

そこでVBAの登場だ

開発タブをクリックする。

そんなタブが見当たらないぞ!と言う人は、

ファイルのオプションを開く

vba_develop_menu

リボンのユーザー設定を開く(下図)

上図のように開発のチェックを有効化してOKをクリックする。

下図のように開発タブが出るので、左端の Visual Basic タブをクリックする。

下図のような画面が出る。

これがVBAの開発環境だ。

ちなみにWordでもPowerPointでも上記のリボンのユーザー設定の操作をすれば同じく開発タブが表示されて、その中にVBAの項目がある。

このVisual Basic タブの機能を使うと、プログラムを書いて実行したり、一行ずつ実行してデバックするなどが可能だ。

また、ユーザーフォームの機能を作って自分で好きな操作メニューを表示するなども可能だ。それは第二回目に説明予定。

上部に表示されているアイコンの種類や数が、皆さんの環境と異なっていると思う。

そういう場合には、ツールバーの辺りで右クリックするとカスタマイズ可能だ。

今回は、取り敢えず緑色のアイコン(実行ボタン)が出ていれば問題ない。

上図を初めて見た人は、何だかややこしそうで難しそうな印象を受けると思うが心配ない。

慣れれば誰でも使いこなせるのだ。

標準モジュールの追加

さて、下図のように右クリックして、挿入 → 標準モジュール を実行する。

標準モジュールが追加されたら、その中に関数を書き込む。

下記のVBAのコードをコピペして上図の真っ白な領域に貼り付ければよい。

上部に空白行が入っても問題ない。

Sub Add_Hyperlinks()

Dim i As Long

With ActiveSheet.Hyperlinks

For i = 4 To 20

.Add Anchor:=Cells(i, 2), Address:=Cells(i, 3).Value

Next i

End With

End Sub

無事に貼り付けたら、下図に示すようにマウスでこの関数内のどこでも良いからクリックしてマウスカーソルを関数内に置いておく。

その状態で、緑色のアイコン(実行ボタン)をクリックする(下図)

そうすると、一瞬でハイパーリンクが張れるぞ!!!!!!!!!!!!!!!!!!

試しに、適当に会社名をクリックしてみると各社のサイトが開くと思う。

これで完了だ。

何万行あっても一瞬で作業が終わる。これでぐっすり寝る事が可能だ。

次の章ではデバッガーの使い方を覚えるが、ここで一先ず休憩。

この本はアマゾンランキングも高い。

ワテはまだ読んでいない。

デバッガーの使い方を習う

まず、上で作成したハイパーリンクを削除しておこう。

青い文字の部分を全選択して、右クリックでハイパーリンクの削除を実行しておく。

これで、初期状態に戻った。

さて、下図に示すように茶色の印は、ブレークポイントというやつだ。

マウスでクリックするとOn/Offを切り替えられる。

とりあえず下図のようにセットしておく。

マウスカーソルは、上述したように適当な場所をクリックして関数の中にセットしておく。

この状態で、緑色のアイコン(実行ボタン)をクリックする。

そうすると、今回は一気に実行されずに、この印のブレークポイントで停止する(下図)。

黄色で表示されている行が今から実行する予定の行だ。

その行を実行したい場合には、下図のアイコン(ステップオーバー)をクリックする。

そうすると一行ずつ実行することが可能だ。

これで、どんな命令が実行されているのかを確認しながら処理を行うことが出来る。

プログラムの間違いなどを見つける際には便利な機能だ。

両隣にある似たようなアイコンも試してみると良い。

デバッグを中止して、一気に実行したい場合には、ブレークポイントを解除(消して)、緑色のアイコン(実行ボタン)をクリックすれば良い。

マクロをファイル保存しておく

普通のエクセルファイルは .xlsx 拡張子だが、今回作成したようなVBAプログラムを含むEXCELデータの場合には、

マクロ有効ブック .xlsm で保存する。

下図のように適当なファイル名を付けて、

ファイル種類を .xlsm

を選択して保存すれば良い。

ファイル名:一瞬でおかき会社名にハイパーリンクを張る凄いVBAプログラムのBook1.xlsm

これで貴方もVBAプログラミングの第一歩が踏み出せた。

今回実行したプログラムのコードの意味については、次回解説したい。

でも、見ればだいたいどんな処理をしているか分かるだろう。

ネットで勉強する

もし本格的にプログラミングを習得したいなら、こういう有料のコースも良いかも。

プログラミングの知識がない人が一人で独学でプログラミングを習得する事は可能ではあると思うが、最初のハードルが高い。

ビットとかバイトとかアドレスとか、知らない専門用語が沢山出て来る。一つずつ調べて理解すれば良いが、そういう段階で挫折する人も多いだろう。

でも、こういう有料のコースに申し込めば講師の人から色々と詳しく教えて貰えるので短期間でレベルアップが可能だろう。それである程度の知識が身に付けば、あとは独学でやって行っても良いし、あるいは、より上級のコースでさらに高度な知識を身に付けるのも良いだろう。

例えば上の広告の右側のサイトでは、

開発 ->  プログラミング言語  ->  Microsoftに関する人気上位の有料コース

を開くと、エクセル関連の多数の講座があるが、安いのだと1000円くらいからのコースもある。

例えば本日の時点ではこう言う講座があった。

ここから始める!本気でExcelマクロ(VBA)を学びたい人のための基礎講座【超入門編】 ¥1,200
エクセルで絶対覚えておきたい7つの関数 | たった1時間で習得できる ¥1,200
エクセルVBAのユーザーフォーム作成を3時間で学ぶ | エクセルのマクロを活用したデータベースのつくり方 ¥1,200

どれも数時間のビデオレクチャーのようだ。

これくらいの価格なら、専門書を買うよりも安いかもしれない。

プログラミング教室に通う

個人や企業が主催する講座・教室・レッスン・ワークショップが1400件以上 ストリートアカデミー

 
追記(2016/10/17)

その2を書きました。

【入門編】 初心者向け EXCEL VBA (2/10) –実際にVBAを開発する手順の紹介
 
追記(2016/7/2)

【入門編】 初心者向け EXCEL VBA (3/10) – EXCEL VBAのFor Nextループをマスターする

アマゾンランキングも高い。小型の本なので通勤電車でも読める。

ワテ推薦の一冊だ。

パソコン自作シミュレーター(2017/1/3)

正月休みを利用してヘンテコなWEBサービスを作成してみた。

パソコン自作シミュレーター解説記事

➡ パソコン自作シミュレーターのサイト  を開く

パソコンの自作に興味ある人はもちろん、友人、知人、家族、他人、変人、鉄人、暇人の人にお勧め下さい。

ワテは、今年はこの パソコン自作シミュレーター でPPAP以上の注目を集める予定だ。

スポンサーリンク

シェアする

フォローする

コメント

  1. 福本建雄 より:

    EXCELvbaになぜか急に思い立ち向学心に燃えている超初心者です。
    今までいろいろなサイトを探して勉強させていただいてきました。

    今日初めて貴サイトにぶち当たり、その理解しやすさ、
    面白さにはまり、第1回から5回まで一息もつかず熟読、
    勉強させていただきました。

    早い第6回を熱望しています。よろしくお願いいたします。

  2. wareko より:

    福本様
    この度は、小生のウェブサイトを訪問して頂きましてありがとうございました。
    福本様から大変有難いコメントを頂きまして、とても光栄であります。
    ご要望を頂きましたEXCEL VBA口座の第6回以降の記事に関しましては、沢山のネタはありますので、ご要望にお応えできるように時間がある限り、執筆したいと思っております。
    コメントをお送り下さる方は滅多におられませんので、自分の記事が世の為になっているのかどうか不安だったのですが、福本様のコメントを拝読させて頂きまして、大変励みになりました。
    ありがとうございました。