初心者のためのExcelマクロ超入門(絶対できるVBA開発)

マクロがまったくわからない人のためにエクセルマクロやVBAについてできるだけわかりやすく書いています。Twitter:@shuhhohhey

ExcelマクロVBA

初心者のためのExcel エクセルマクロVBA入門-多次元配列

前回で多次元配列のお話です。使い方もありますが、ほとんど前回の配列の配列と同じです。 違うのは書き方ですね。こんな感じで書きます。 Sub test() Dim strArray(2,2) As String strArray(0, 0) = Sheet1.Range("A1").Value End Sub 以上。非常にわかり…

初心者のためのExcel エクセルマクロVBA入門-配列に配列を入れる

今日はもう少し配列について突っ込んでいきたいと思います。今日配列の配列です。 ( ゚д゚)アァ・・・もう無理・・・ 大丈夫です。とりあえず、一番簡単な2つ構造だけ押さえればVBAの世界ではとりあえずやっていけると思います。なぜなら。。。 配列に配列を入…

初心者のためのExcel エクセルマクロVBA入門-動的配列を使おう

実践で固定配列なんてあんの? というくらい、配列については固定で宣言するよりも、動的に扱うことの方が多いです。データなんて常に必ず10件なんてことほとんどないでしょう。100件だったり、123件だったり1000件だったり・・・それらを扱うためには固定配…

初心者のためのExcel エクセルマクロVBA入門-配列について

マンションに入ってみないか? 今日から配列でございます。初心者の皆さんが変数を学ぶ上での最初の関門ですなぁ・・・変数というのは以前にもその性質をお話しましたが、基本的には1つの値しか入れることはできません。strAisatu変数に「おはよう」が入って…

初心者のためのExcel エクセルマクロVBA入門-変数の名前付けの達人になれ!

オラだんだん口調とか砕いて書きたくなってきたぞ。昨日、声優のレジェンド野沢雅子さんがテレビに出てて、なんかスゲーもん見ました。まぁ、そんな感じです。(どんなだ?)本題行きます。 変数の名前付けルール プログラミング言語で変数という概念は必須…

初心者のためのExcel エクセルマクロVBA入門-オブジェクト変数はSetを使う

オブジェクト(ロボ)はセットしないと使えない! 通常のString型やLong型の変数というのは値を格納するには代入式(=)を使えばいいだけでした。 strHoge = "これは文字列です" lngHoge = 12345 ですね。しかし、ロボ。つまりオブジェクト型の変数に実際の…

初心者のためのExcel エクセルマクロVBA入門-変数の型

前々回くらいで、初心者が躓くところで変数の型で躓いていると書きました。そして今回は変数の型についてです。今回は最初に宣言します。 覚える型は3つだけ!(実質2つ) これだけ。これだけ覚えて今回は終わりです。簡単だと思いますがかなり重要ですし、…

上級者のためのエクセルマクロ-参照ずれるんですけど・・・

今回は閑話休題です。自分がやっているエクセルマクロ案件というか、まぁメインで作ってるんですが、分からなくて調べて、解決そして伝説へ・・・的なことです。初心者の方でも読み物くらいでお願いします。たまにはこんな風に書いてみたいんだよ。うん。 問…

初心者のためのExcel エクセルマクロVBA入門-変数が使える範囲って?

グローバル変数とローカル変数 さて、変数が使える範囲のお話です。VBAっぽくいうと、グローバル変数とモジュールレベル変数なんて呼んだりしますが、ぶっちゃけ呼び名なんてどうでもいいです。グローバルとローカルで十分。なぜならその方がイメージしやす…

初心者のためのExcel エクセルマクロVBA入門-変数を宣言する

変数は作る。絶対に・・・ 今日は前回の変数は絶対に宣言してね。についてです。実は通常ですと変数は宣言しなくても使えます。 エクセルマクロの初期設定では変数は宣言しなくても使えるようになっていますが、マクロというかプログラミングをマスターした…

初心者のためのExcel エクセルマクロVBA入門-変数を使う

以前やった変数のお話ですが・・・さてどうしたもんかと思いましたが、先人の人がとてもわかりやすく教えてくれているのでそれに沿って少し話をしたいと思います。 マクロの記録で変数は出てこない まずプログラミング初心者の人がつまづくのはここです。最…

初心者のためのExcel エクセルマクロVBA入門-プログラミング基礎(命令文の書き方)

もう少しだけこの3行のプログラムを見てましょう。 Public Sub Test1() Range("A1").Value = "Hello! VBA!" End Sub わずか3行です。ですが、これだけでブログ3回も費やせるくらい深いってことですな。逆にこの3行が理解できないなら、この先は絶対に無理っ…

初心者のためのExcel エクセルマクロVBA入門-プログラミング基礎(命令文の構成)

私のブログ文章長いらしいので短めにしてみます。今日は昨日の1つの命令文についての説明のお話ちょっと英語の文法チックになると思いますが、頑張ってください。 エクセルはプロシージャ単位で理解する。 昨日のコードをもう一度出します。Sheet1オブジェク…

初心者のためのExcel エクセルマクロVBA入門-プログラミング基礎(ロボに命令する)

プログラミングの基礎って? 記念すべきVBAカテゴリの50回目がプログラミング基礎の1回目とは。実に面白い。(古) 今までオブジェクトというものをロボに例えて来ましたので、もう少しロボのままでいてもらいます。(笑)今回からプログラミング基礎を学びま…

オブジェクト(ロボ)とクラス(設計図)を実践-初心者のためのExcel エクセルマクロVBA入門

今日はちょっとだけコードを書きます。前回までにお話したオブジェクト。そうロボの設計図であるクラスを書いてみましょう。サンプルにするのは以前題材で取り上げた成績表マクロを使います。今回は成績ロボ(オブジェクト)を作成する設計図(クラス)を書…

オブジェクトをロボに例えるとすげーわかりやすくて震える2-初心者のためのExcel エクセルマクロVBA入門

ロボ(オブジェクト)同士の関係 前回やった続きです。またオブジェクトをロボに例えてお話しましょう。前回、エクセルはたくさんのロボ(オブジェクト)が集まってできている(集合体)ということをお話しました。だから、マクロでエクセルを動かすには数あ…

オブジェクト指向をロボに例えて説明したら、すげーわかりやすくて震える。-初心者のためのExcel エクセルマクロVBA入門

エクセルのマクロをマスターするにはプログラミング言語であるVBAとプログラミングの基礎を学びましょう。ということはずーっとこのブログで主張してきました。ただの動作を記録するような「マクロの記録」をするだけでは、一生マクロを覚えることは「不可能…

初心者のためのExcel エクセルマクロVBA入門-マクロをマスターしたいと思ったら

マクロは難しくない これからまた最初の最初のステップです。色々とエクセルを使って作業をしているとあぁ・・・マクロが使えたらなぁなんて思ったことないでしょうか?おそらく、マクロの記録を使ってみて、再現して、おぉ・・・これがマクロか・・・と思っ…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:成績表を出力して完成させる

今回で完成まで持っていきたいと思います。前回までで、必要なデータ(氏名や成績など)はすべて変数に格納してあります。後はこれを出力用のテンプレートを開いて、出力して、保存して、終わりです。 出力の処理としては テンプレートファイルを開く 成績表…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:成績表を読み込む

こっからどんどん難しくなると思いますが、ついてこれない場合でもこんな感じなのかーと言うくらいに思ってくれてもいいです。要するにどう考えてどう作っているのか?ということを感覚的に理解してもらえると嬉しいです。 成績表を取り込む変数を作成する …

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:エラーチェックその3

今回でエラーチェックを完成させます。さっそくですが、ファイルの存在チェックから。 Dir関数は存在チェックに便利! テンプレートファイルが存在するか?を調べるにはDir関数という関数を使います。この関数は引数で指定したファイルが存在する場合に、フ…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:エラーチェックその2

続きです。では後はIf文の中に日本語で書かれているところをちゃんとチェックできるようなものに変えていくだけです。いくつかチェックがありますが、順番にやっていきましょう。 入力されているかは""(空文字)で調べる 数字が入力されてない場合は、単純…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:エラーチェック

今回はエラーのチェックですね。何度でも載せておきますが処理の流れを設計の回で書いたのでおさらいです。 <処理の流れ> ボタン押下時のイベント処理 メイン処理(mdlMain) 事前の処理(mdlStartEnd.PreStart) エラーのチェック(mdlErrorCheck.InputCheck…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:事前後の処理(ScreenUpdateingプロパティなど)

さて、今日からは設計から各種のメソッドを作っていきます。 1つ1つの役割を考えて、処理を書いて行きます。 まずは前々回でやった設計に登場した処理を再掲載します。 ボタン押下時のイベント処理 メイン処理(mdlMain) 事前の処理(mdlStartEnd.PreStart) …

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:マクロの枠を作る

ファイルのレイアウトを作成する 前回までに、基本的な設計というのは大体決めることができたと思います。さっそく成績表マクロの新しいレイアウトと、必要なモジュールの外枠をすべて作成していきます。ゴリゴリっとやっていくのでしっかりと付いて来てくだ…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:マクロを再設計する

さて、今回から新たに今までに作った成績表マクロを一度ぶっ壊してみます。完全に0にするわけではありません。必要な処理と仕様を洗い出し、どのような処理をすることが一番スマートなのか?を考えてみましょう。 マクロの仕様を考える前に前提を決める まず…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:値渡しと参照渡し

これについては非常にわかりにくいと思うので、この回でこのテーマだけを取り上げます。 値渡しってなぁに? 今までやったメソッドの引数にはこう書いてありました。 InputCheck(ByVal shussekiNumber As String) As Stringこのカッコの中にある「ByVal」と…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:ユーザー定義型を使う

前回書いたユーザー定義型のコードについてもう少し詳しく説明します。 ' 科目のユーザー定義型 Public Type Kamoku Name As String '科目名 Score As Variant '点数 End Type と ' 科目の配列を作成します。 Dim arryKamoku() As Kamoku でしたね。 ユーザ…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:処理順番(フロー)の改善

さて、では答えです。前々回のMainのコードを見てみましょう。 Option Explicit Sub Main() '一般のエラーをキャッチする On Error GoTo cmnErr ' 必要な変数を作成する Dim shussekiNumber As String ' 出席番号を格納する変数 Dim name As String ' 氏名 D…

初心者のためのExcel(エクセル)マクロVBA入門-成績表マクロの作成:ボタンとフォームの設置(イベント処理)

本題に入るその前に・・・ おわび 前回までの連載でコードに間違いがありました。出席番号をチェックするメソッドInputCheckの数字の範囲を確認する条件を間違ていました。 間違い:If CLng(shussekiNumber) 10 Then 正しい:If CLng(shussekiNumber) 10 The…