当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

【VBA】プログラミング超入門講座

VBA(Visual Basic for Applications)プログラミング超入門講座

[01] 足し算から始めましょう!
[02] Cellsプロパティの扱い方に慣れましょう
[03] ヘロンの公式で三角形の面積を求めます

[11] 条件分枝の入れ子 (ネスト)
[12] エラー処理について学びます
[13] コイン投げマクロを作ります

[15] ユーザーフォームを作りましょう
[17] テキストボックス、ラベル、コマンドボタンの配置
[18] 配列変数の基本を学んで、くじ引きマクロを作ります

[19] シートに図形を作成します
[20] 赤青緑を無作為に表示します
[22] AddChartメソッドでグラフを作成します

エクセルにはたくさんの数学関数やグラフ機能が備わっていますけど、VBA を使えばもっと色々なことができるようになります。このコーナーでは三角関数や級数を計算させてみたり、自動でグラフ用データを出力させたりする数学マクロを実際に作りながら、その折々で「プロパティって何だろう?」とか「変数の宣言が必要なのはどうして?」というような基本的なことも少しずつ学んでいけるようになっています。

いわゆる「習うより慣れましょう」というスタンスで、無理なく少しずつステップアップしながら、連載が終わる頃にはさり気なく VBA の基礎が身についちゃっているようなコーナーです。だいたい30記事前後を目安に連載が終わるように予定していますので、「数学と VBA を一緒に学びたい!」という方はぜひお付き合いください。

VBA 数学マクロコレクション

数値の小数部分を得るユーザー定義関数
Σk^s の値を計算します
数字の各桁を足し合わせます
素数を判定して並べます
配列によるベクトルの定義
台形公式 シンプソンの公式 

数学の計算を処理するための色々なマクロ(VBA のプログラムコード)を公開しています。逆三角関数や階乗計算から始めて、少しずつ複雑なマクロを掲載していく予定です。特にファンクションマクロ(ユーザー定義関数)はサブルーチンの中に呼び出せるだけでなく、ワークシート上でエクセル関数と同じように使用できるので、溜め込んでおくと、どんどんエクセルがパワーアップしていきます。不具合(バグ)などがないように十分精査したものを公開しているつもりですが、それでもやはり見過ごしているものも一部にあると思いますので、御指摘いただけると幸いです。

ファンクションマクロ(ユーザー定義関数)の使い方

記事に掲載されているコードの大半はファンクションマクロ(ユーザー定義関数)です。ファンクションマクロは以下の方法で関数を登録しておくだけで、エクセル関数と同じように使うことができます。

1.各記事にあるファンクションマクロをコピーします。
2.マクロをメモ帳などに貼りつけておきます。
3.Excel を起動します。
4.[開発] ⇒ [ Visual Basic ] の順に選択して Visual Basic Editor を起動します。
5.[挿入] ⇒ [標準モジュール] を選択して新しい Module にコピーしたマクロを貼りつけます。
6.[上書き保存] をしてから Visual Basic Editor を閉じます。
7.ワークシートに戻って「=関数名(数値)」のように入力して適当な引数を入れて動作を確認してください。引数の指定方法は各記事で説明されています。
8.今回初めてマクロを使用する等の事情で、エクセルのブックが [マクロ有効ブック] になっていない場合は、[ファイル] ⇒ [名前を付けて保存] を選択し、保存したいフォルダーを選んで、[ファイルの種類] (現時点で Excel ブックとなっているはずです)を [マクロ有効ブック] に変えて保存してください。

健太郎君はVBAに興味津々です

【AI連載小説】数学のリズム、エクセルの旋律(6)「健太郎君はVBAに興味津々です」
 
ある日、月子は弟の健太郎を連れて、Excel VBAサークルの部室を訪れました。健太郎は小学6年生で、興味津々な様子で部室の中を見回していました。

月子:皆、こんにちは! 今日は弟の健太郎を連れてきたよ。プログラミングに興味があるんだって。
真琴:よう、健太郎くん! プログラミングは面白いぞ。何かやってみたいことがあるかな?
健太郎:はい、お兄ちゃんがいつもやっているのを見てて、僕もやりたくなったんです!
隆治:それなら、Excel VBAがちょうどいいかもしれないね。簡単なプログラミングから始めてみようか?

研伸:どんなプログラムが好きかな?ゲームやデータ処理、それとも何か特定のアプリケーションを作ってみたいか?
健太郎:ゲームがいいな! でも、どうやって作るんですか?
月子:それなら、まずはシンプルなゲームから始めてみるのはどうかな?例えば、数字を当てるゲームとか。
真琴:いいアイディアだね。Excel VBAを使って簡単なプログラムを組んで、数字を当てるゲームを作ってみよう。

(メンバーたちは、健太郎にExcel VBAの基本的な使い方を教えながら、シンプルな数字当てゲームのプログラムを作り始めました。健太郎は興奮と興味を交えた表情で、サークルメンバーたちの指導を受けながら、自分の手でプログラムを組み始めました)

研伸:この行に条件分岐を入れてみよう。数字が当たったかどうかを判定するんだ。
隆治:そうだな、条件文はこう書くんだよ。分かるかい?
健太郎:(真剣な表情で)うん、分かるような気がする!
月子:すごいね、健太郎くん。プログラムの基本を理解できてるね。

真琴:次はループを使って、何度もゲームが繰り返されるようにしよう。どうだい、難しいかな?
健太郎:(にっこり笑って)大丈夫!やってみるよ。

(サークルメンバーたちは、手本を見せつつ、健太郎にループの書き方を教えました。健太郎は少しずつプログラムを組み上げ、数字当てゲームが完成に近づいていくのを楽しんでいました。)

研伸:それじゃあ、完成だね。動かしてみよう!

(健太郎がプログラムを実行すると、画面には数字がランダムに表示され、健太郎はユーザーとして数字を入力して当てるという流れが始まりました。)

健太郎:わー、できた!これ面白いね!
月子:すごいね、健太郎。プログラムが動いてる姿、見てて楽しいよ。
真琴:これからも何か作りたいものがあれば教えてくれるといいな。一緒に楽しくプログラミングしよう!

(サークルメンバーたちは、新たな仲間として健太郎を迎え、プログラミングの楽しさを共有しながら、サークルの部室は笑顔で溢れていました。)