ウェイクで行く車中泊の旅

軽自動車ウェイクでの車中泊日記やアイテムを紹介していきます


車中泊 ドライブ キャンプ ウェイク アイテム ブログライフ その他 全記事一覧

エクセル(Excel)VBAマクロであそぼう!~記事リンク一覧表を作る <Part.1:基礎編>

 広告 

表やグラフなどを作成するのに便利な「エクセル(Excel)」

仕事や学校で使っている方も多いかと思います。表計算やちょっとしたデータ管理、資料作成など、多目的に使える大変便利なアプリです。

 

さらにエクセルをもっと便利に使う方法があります。

 エクセルVBAマクロ

どこかで聞いたことがある言葉かもしれません。

 

VBAは「Visual Basic for Applications」の頭文字をとった略称で、マイクロソフト社のWordやAccessなどのアプリで使われるプログラミング言語になります。マクロはそのプログラムを使って操作することを言います。

 ※記事内ではマクロと呼ぶことにします。

 

「そのマクロってやつは何ができるの?

「使ってみたいけど、どうやって使うんだろう?

 

今回はエクセルVBAマクロの使い方について、「はてなブログの記事一覧のリンク表を作る!」を題材に説明したいと思います。

 

Part.1基礎編(本記事)ではマクロってどうやって使うの?の基本的な内容、Part.2実践編では、記事一覧表を作るプログラムを説明します。全体通じてマクロの詳細説明は避け、「始めるの簡単そう」、「こんなことができるんだ!」と感じ、マクロに興味を持つきっかけになればと思っています。マクロの詳細は専門書にお任せします。。

 

お願い

プログラムの作成、それに伴う作業、実行結果については自己責任でお願いします。

f:id:pisukechin:20200503085942j:plain

 

準備するもの

エクセル(Excel)のアプリがパソコンにインストールされていればOKです。エクセル以外のアプリは不要です。

 

エクセルのバージョンについてはどれでも問題ありません。本記事で使用するエクセルは、「Excel2013」です。バージョン違いでメニューなどの見た目が変わっていたりしますが、内容や操作方法はほとんど変わりません。

 

何を作る?

今回の題材は、「はてなブログの記事一覧のリンク表を作る」です。

 

本ブログで、「記事一覧」で表示しているスタイルを作ってみたいと思います。記事Noと投稿日、ページへのリンク付きのタイトルをリスト表示します。記事一覧のサンプルは、本ブログのタイトル下の「記事一覧」ボタンから確認できます。

 ※実際の作成方法については、Part.2実践編(別記事)で説明します。

 

f:id:pisukechin:20200503091555j:plain

 

マクロを作る準備

エディターを起動しよう

それでは早速、マクロを作るためのエディターを起動したいと思います。

エクセルを起動し、ブックを新規作成します。その後、「VisualBasicEditor」をメニューから選択します。場所が分からない場合は、ショートカットキー「Alt + F11」でもOKです。

 

下の画面が出ればOKです。エクセルVBAでプログラムを作成する準備ができました。

 

f:id:pisukechin:20200503092742j:plain

VisualBasicEditor画面

 

プログラムを書く準備

エディターが開いたので、プログラムを書いていきたいと思います。

プログラムを書く部分を表示させる方法はいくつかありますが、分かりやすくて簡単な方法で表示させたいと思います。

 

一旦、エクセルのブックの画面に戻ります。

メニューの表示から、マクロ→マクロの記録を選択します。

 

f:id:pisukechin:20200503094116j:plain

 

マクロの記録画面で、マクロ名を入力します。

動かしたいプログラムは種類毎に分けることができます。たとえば、表から文字を抽出するプログラムはProgram1、表に色を塗ってグラフを書くのはProgram2・・・などです。

 

「そんなにプログラムを分ける必要なんてないよ!」

だと思いますので、とりあえず、ここはMacro1のままでOKです。作成したプログラムはこの名前で選んで実行します。名前は自由に変えても大丈夫です。

 

f:id:pisukechin:20200503095033j:plain

 

そのあと、何もせず、記録終了を選択します。さきほどと同じメニュー内にあります。

 

f:id:pisukechin:20200503095534j:plain

 

ここでエディター画面に戻ってください。プロジェクトの所に標準モジュールがあるので、その中のModule1をダブルクリックします。すると、右にメモ帳みたいのが開くかと思います。ここがプログラムを記述する場所になります。

 

f:id:pisukechin:20200503100305j:plain

 

「Sub Macro1()」~「End Sub」までの間に書かれたプログラムが、Macro1を実行すると動く場所になります。

 

これでプログラムを書く準備は整いました。次に簡単なプログラムを作って動かしてみたいと思います。

 

マクロを動かす

簡単なプログラムを作って、マクロを動かしてみたいと思います。

 

作成するプログラム

プログラムの説明もかねて、こんなプログラムを作ってみます。

 

  • Sheet1のセルに文字と数字を記入
  • その内容をSheet2にコピー
  • 数字の部分を足して結果を表示

 

作成するまえに、シートの準備をお忘れなく。Sheet1とSheet2を作成してください。中身は空(白紙)にしてください。

 

f:id:pisukechin:20200503102019j:plain

 

次に下記のプログラムをコピーし、先ほどのエディターに貼り付けてください。

 

  1. Sub Macro1()
  2. Sheets("Sheet1").Cells(1, 1) = "りんご"
  3. Sheets("Sheet1").Cells(2, 1) = "みかん"
  4. Sheets("Sheet1").Cells(1, 2) = 5
  5. Sheets("Sheet1").Cells(2, 2) = 3
  6. End Sub

 

貼り付け終えたら実行ボタンを押してみてください。先ほど記述されていなかったSheet1の中に、りんごなどの単語がセルに表示されているかと思います。

 

f:id:pisukechin:20200503103649j:plain

 

実行の際にマクロを選択する画面が表示された場合、Macro1を選んで実行を押せばOKです。結果はまったく同じです。

 

プログラムの説明

簡単にプログラムの説明をしたいと思います。

 

Sheets("Sheet1").Cells(1, 1) = "りんご"

シート「Sheet1」のセルの場所(1,1)に文字”りんご”を入れるという意味です。文字なので””(ダブルクォーテーション)で囲います。同じように数字も入れることができます。この命令により、セル内に文字が表示されました。

 

セル(cells)の指定方法ですが、下のイメージになります。数学のXY座標グラフのイメージと逆ですが、(上下、左右)→じょうげさゆう、と覚えておくとよいかと思います。

 

f:id:pisukechin:20200503105103j:plain

 

別のシートにコピーしてみる

先ほどのプログラムにさらに書き足して、Sheet1からSheet2に上下を入れ替えてコピーしてみたいと思います。数字の部分は足し算して下のセルに合計として追記します。プログラムはこちらです。

 

  1. Sub Macro1()
  2. Sheets("Sheet1").Cells(1, 1) = "りんご"
  3. Sheets("Sheet1").Cells(2, 1) = "みかん"
  4. Sheets("Sheet1").Cells(1, 2) = 5
  5. Sheets("Sheet1").Cells(2, 2) = 3
  6. Sheets("Sheet2").Cells(2, 1) = Sheets("Sheet1").Cells(1, 1)
  7. Sheets("Sheet2").Cells(1, 1) = Sheets("Sheet1").Cells(2, 1)
  8. Sheets("Sheet2").Cells(2, 2) = Sheets("Sheet1").Cells(1, 2)
  9. Sheets("Sheet2").Cells(1, 2) = Sheets("Sheet1").Cells(2, 2)
  10. a = Sheets("Sheet2").Cells(1, 2) + Sheets("Sheet2").Cells(2, 2)
  11. Sheets("Sheet2").Cells(3, 2) = a
  12. End Sub

 

同じように実行してみると、Sheet2にりんごとみかんが上下逆になり、さらに、3行目のB3に、2つを足した数字が表示されているかと思います。

 

Sheets("Sheet2").Cells(2, 1) = Sheets("Sheet1").Cells(1, 1)

これは=”=”を挟んで、右の内容を左に入れるという意味になります。読み解くと、「Sheet1のセル(1,1)の内容をSheet2のセル(2,1)に入れる」となり、行が入れ替わるプログラムになります。

 

a = Sheets("Sheet2").Cells(1, 2) + Sheets("Sheet2").Cells(2, 2)
Sheets("Sheet2").Cells(3, 2) = a

aは変数と呼ばれ数字や文字を記憶することができます(箱に数字などを入れるイメージ)。Sheet2のcells(1,2)とcells(2,2)の内容を足した(+)内容をaに入れるという意味です。次にそのaの内容をcells(3,2)に入れて表示させています。

 

f:id:pisukechin:20200503111106j:plain

 

マクロの保存方法

マクロの保存はエクセルファイルの保存時に、ファイル種類に「Excel マクロ有効ブック」で保存すればOKです。次回は保存したファイル(拡張子 .xlsm)を開き、使用したりプログラムを編集したりすることができます。

 

まとめ

エクセルVBAマクロであそぼう!

まずは基礎編ということで、マクロを作成する準備から、簡単なプログラムを動かすところまで説明しました。ここまでできれば、その後の記事一覧表の作成はできたも同然です。

 

次回は実践編と題し、一覧表のプログラムの説明と、完成した一覧表をHTMLソース化して、ブログに貼り付けるところまでを説明します。