★ ExcelVBA講座

~Functionプロシージャ~
--------------------------------------------------
Functionプロシージャとは、具体的にどのように記述するのでしょう?
自分の名前を返すユーザー定義関数「私の名前」を作成してみましょう。

1.Excelを起動し、エディター画面を表示させましょう。 (Alt+F11)

2.メニューバーより「挿入」?標準モジュールを選択

3.出てきた真っ白な画面に以下を入力します。名前自体はご自分の名前をいれましょう。
コピー&ペーストせずに、できるだけ自分で入力した方が勉強になりますよ。

'--------------------------

Function 私の名前()

私の名前 = "亀田 亀雄"

End Function

'--------------------------
<解説>
Function 私の名前()
  ・・・プログラムコードは、
「Function ユーザー定義関数名(引数,・・)」と
「End Sub」の間に記述していきます。
なお、「Function ユーザー定義関数名(引数,・・)」
から「End Sub」までの記述を“Functionプロシージャ”と呼びます。
そして、今回のように引数がない場合も“かっこ”の記述は必要です。
ちなみに書かずに改行しても勝手に関数名の後に()が付きます。

私の名前 = "亀田 亀雄"
  ・・・「私の名前」という関数は、こういう関数だという記述が必要です。
 亀田亀雄のように文字を返したい場合、文字列の前後に
 ダブルクォーテーション(")を付けます。
  
--------------------------------------------------
Functionプロシージャを実行するには・・・

ワークシートのセル上で「=ユーザー定義関数名(引数,・・)」と記述します。

    =私の名前()
と入力すると、セルにあなたの名前が返ってくるはずです。
今回の関数には引数がありませんでしたね。それはなぜでしょう?
返す値を導くためワークシート上のセルから特別な情報を得る必要がなく
返す値が固定で決まっているからです。
-------------------------------------------------
さて!どうでしたか?
上記の指示通りに操作して実行することができましたか?
では、まだ次回をお楽しみに!


◆----------------------------------------------◆
とことんサポート(eラーニング)概要
http://www.pc-brain.com/

◆----------------------------------------------◆
ExcelVBAの通信講座(eラーニング)
http://www.pc-brain.com/conts_excelvba.html
◆----------------------------------------------◆
Access基礎&実践の通信講座(eラーニング)
http://www.pc-brain.com/conts_access.html
◆----------------------------------------------◆
AccessVBAの通信講座(eラーニング)
http://www.pc-brain.com/conts_accessvba.html
◆----------------------------------------------◆
AccessADO&SQLの通信講座(eラーニング)
http://www.pc-brain.com/conts_accesssql.html
◆----------------------------------------------◆
Androidの通信講座(eラーニング)
http://www.pc-brain.com/conts_android.html
◆----------------------------------------------◆
Excel基礎&関数の通信講座(eラーニング)
http://www.pc-brain.com/ExcelMenu.html
◆----------------------------------------------◆
PHPの通信講座(eラーニング)
http://www.pc-brain.com/conts_php.html
◆----------------------------------------------◆
HTML&CSSの通信講座(eラーニング)
http://www.pc-brain.com/conts_htmlcss.html
◆----------------------------------------------◆
ホームページビルダーの通信講座(eラーニング)
http://www.pc-brain.com/conts_hp.html
◆----------------------------------------------◆

★ ExcelVBA講座
~プロシージャとは・・~
--------------------------------------------------------------
前回迄で「挿入」-標準モジュールを選択し、簡単なプログラムを作成しましたね。
標準モジュールの中に書けるのはSubプロシージャだけではありません。
主なプロシージャの種類として、SubプロシージャとFunctinプロシージャ
があります。
では2つの違いは何でしょう?
一般的にFunctionは「値を返す」もの、Subは「値を返さない」という
説明がありますが、値を返す?返さない?といわれてもよく分かりませんね!
もう少し具体的に説明すると・・ <値を返す>とは・・ワークシート関数を
思い浮かべて下さい。例えば、任意のセルに「=TODAY()」と記述することに
より、そのセル自体の値が現在の日付に変わりますよね!
これこそが「値を返す」ということなのです。
「=TODAY()」と記述することにより、セルの内容が「現在日付」に変化します。
これは「TODAY関数」が現在の日付を返すという作用があるからです。
これが「Function」です。
--------------------------------------------------------------
<値を返さない>とは・・思い浮かべるものがありませんね。
そもそも、値を返さないプログラムが何の役に立つのでしょうか?
上記のように、1つのセルに対して1つの答えを出すことを「値を返す」と
いっているだけなのです。
「値を返さない」とは、まったく値を返さないわけではないのです。
値の返し方がセルに対して1対1とは限らないだけなのです。
「Sub」を実行することにより一度に複数のセルに対して値を「設定」することが
できます。「値を返さないはずのSub」の方が、なんだか便利に思えませんか?
これが「Sub」です。これに関しては、ん!成る程!と思えましたか?
少し経験がある人には納得して頂けたと思いますが、全くの初心者の方は
「ふぅ~ん」という程度かもしれません。これ以上理解を深めるには
実践した方が良いと思います。
以下の文章を含めて、実践に入った時に、また読み返した見て下さい。
--------------------------------------------------------------
<Functionプロシージャの利用方法>
ワークシートのセル上で「=ユーザー定義関数名(引数,・・)」と記述します。
ワークシート関数と何ら変わりません。ワークシート関数を数式バーに羅列していくと
(実際の運用に耐えられるようなシステムを作成する場合は、数式バーには
沢山のワークシート関数が並ぶことでしょう!)見づらくなって、その内に頭が
混乱してくるでしょう。
例えばこのような時に、ユーザー定義関数を作成します。標準モジュール内の
広大なエリアの中に、上から順序だててロジックを記述していく事が出来ます。
これが最大のメリットなのです。
--------------------------------------------------------------
<Subプロシージャの利用方法>
一般的には、作業の自動化(効率化)を行いたい場合など利用します。
なぁんてことが書かれていますが、Functionだって効率化のために記述しますよね。
ここでいう効率化とは、一度に沢山の作業をまとめて行うということです。
例えば、ボタンをクリックするだけで、リストを自動的に集計して印刷する等々
効率化できる作業は山ほどあるはずです。
--------------------------------------------------------------

さて!どうでしたか?
では、また次回をお楽しみに!

◆----------------------------------------------◆
とことんサポート(eラーニング)概要
http://www.pc-brain.com/

◆----------------------------------------------◆
ExcelVBAの通信講座(eラーニング)
http://www.pc-brain.com/conts_excelvba.html
◆----------------------------------------------◆
Access基礎&実践の通信講座(eラーニング)
http://www.pc-brain.com/conts_access.html
◆----------------------------------------------◆
AccessVBAの通信講座(eラーニング)
http://www.pc-brain.com/conts_accessvba.html
◆----------------------------------------------◆
AccessADO&SQLの通信講座(eラーニング)
http://www.pc-brain.com/conts_accesssql.html
◆----------------------------------------------◆
Androidの通信講座(eラーニング)
http://www.pc-brain.com/conts_android.html
◆----------------------------------------------◆
Excel基礎&関数の通信講座(eラーニング)
http://www.pc-brain.com/ExcelMenu.html
◆----------------------------------------------◆
PHPの通信講座(eラーニング)
http://www.pc-brain.com/conts_php.html
◆----------------------------------------------◆
HTML&CSSの通信講座(eラーニング)
http://www.pc-brain.com/conts_htmlcss.html
◆----------------------------------------------◆
ホームページビルダーの通信講座(eラーニング)
http://www.pc-brain.com/conts_hp.html
◆----------------------------------------------◆

★ ExcelVBA講座

~インプットボックスの利用 ~
---------------------------------------------------------
今回はユーザーに情報を入力してもらうインプットボックスを
作成してみましょう。 入力したデータを受け取り利用する為に
「変数」を使用します。
「変数」とは変動するデータを入れておく箱のようなものです。
ちなみに下記の中では「A」が変数です。 1.Excelを起動し、
エディター画面を表示させましょう。 (Alt+F11)
2.メニューバーより「挿入」-標準モジュールを選択
3.出てきた真っ白な画面に以下を入力します。
-------------------------------------------------------------
Sub インプット()
 Dim A as string
 A = InputBox("今、何が食べたいですか?")
 MsgBox ("夕ご飯は" & A & "にしましょう")
End Sub
'-------------------------------------------------------------
<解説>
Sub インプット()   ・・・プログラムコードは、「Sub プログラム名()」と
「End Sub」の間に記述していきます。
なお、「Sub プログラム名()」から「End Sub」 までの記述を
“Subプロシージャ”と呼びます。
Dim A as string   ・・・変数Aを文字型として宣言する。  
変数を使用する時は基本的に最初に
Dim 変数名 as 型  という形で宣言します。
型には数値型、日付型など色々あります。
変数の型については後日詳しく説明しますね。
A=InputBox "今、何が食べたいですか?"   ・・・インプットボックスに入力した値を変数「A」に代入する。
MsgBox ("夕ご飯は" & A & "にしましょう")   ・・・メッセージボックスを表示する。
表示内容は()内の文。
""で囲まれた文字はそのまま表示されます。
その文字と先程インプットボックスに入力されたデータ
(Aに入っている)を繋げて表示する為 & で繋ぎます。
Aは文字でなく変数なので""では囲みません。
では、プログラムを実行してみましょう!
インプットボックスが表示されたら何か入力して下さい。
---------------------------------------------------------------
<入力する際の注意事項>
☆ 英語部分は直接入力モードにしておきましょう。  
とにかく英文&記号は全角では×!
☆ 英文を入力する際、小文字で入力して構いません。  
改行すると必要に応じて大文字になります。
☆ ちなみに「Sub インプット」の後の()も改行すると自動入力されます。   
つまり・・    
「sub インプット」と書いて改行すれば
「Sub インプット()」と変わるのです。
☆ それと、2~4行目は最初スペースがあいているように見えますね。  
ここはTabキーを押してインデントをつけてあげましょう。  
プログラムの実行とは何ら関係ありませんが、コードが見やすくなります。
-----------------------------------------------------------------
<実行する際の注意事項>
1.カーソルをSub~End Sub迄の間のどこかにおいておく。
2.メニューバーより「実行」- Subユーザーフォームの実行を選択する。 
(ツールバーのボタンから選択、あるいはF5ボタンを押すと早いですよ)
-----------------------------------------------------------------
さて!どうでしたか?
上記の指示通りに操作して実行することができましたか?
では、また次回をお楽しみに!

◆----------------------------------------------◆
とことんサポート(eラーニング)概要
http://www.pc-brain.com/

◆----------------------------------------------◆
ExcelVBAの学習
http://www.pc-brain.com/conts_excelvba.html
◆----------------------------------------------◆
Access基礎&実践の学習
http://www.pc-brain.com/conts_access.html
◆----------------------------------------------◆
AccessVBAの学習
http://www.pc-brain.com/conts_accessvba.html
◆----------------------------------------------◆
AccessADO&SQLの学習
http://www.pc-brain.com/conts_accesssql.html
◆----------------------------------------------◆
Androidの学習
http://www.pc-brain.com/conts_android.html
◆----------------------------------------------◆
Excel基礎&関数の学習
http://www.pc-brain.com/ExcelMenu.html
◆----------------------------------------------◆
PHPの学習
http://www.pc-brain.com/conts_php.html
◆----------------------------------------------◆
HTML&CSSの学習
http://www.pc-brain.com/conts_htmlcss.html
◆----------------------------------------------◆
ホームページビルダーの学習
http://www.pc-brain.com/conts_hp.html
◆----------------------------------------------◆