広告
お仕事などでお馴染みの表計算ソフト、エクセルに付属しているExcelVBA(エクセルブイビーエー)というプログラミング言語を使って初心者・入門者向けにプログラミングのキホンを解説していきます!
ExcelVBAができるようになれば業務内容によってはボタン一つで大幅な業務効率化ができる他に、普段のエクセルの使い方も段違いにレベルアップする事ができます!
ベテランの方も新人さんも興味のある方はぜひ挑戦してみてください!
プログラムの中で変化する数(ゲームで言うなら主人公の体力とか、残り時間とか、敵の居場所とかとにかく変化する数はなんでもです!)を使う時は「変数(へんすう)」という入れ物を用意してそこで管理します。
使う時はわかりやすいように名前をつけます!プログラムを書く時と同じでキホンは半角でアルファベットで小文字です。
おにぎりだったら「onigiri」みたいに、自分が使いやすい名前で大丈夫です。ExcelVBAの命令と同じはダメです!
・○一文字だけ・・・a b c d e
・○番号をつける・・・a1 a2 a3 a4 a5
・○日本語のローマ字・・・ringo mikan enpitu
・○途中にアンダーバー・・・no_1 no_2
・×数字だけ・・・1 2 3 4 5 6
・×数字が頭・・・1a 2a 3a 4a
・×日本語・・・りんご みかん えんぴつ
・×最初にアンダーバー・・・_no1 _no2
今回は「変数を用意して適当な値を入れて表示する」というトコロまでやってみます。
'4日目 プログラム1 Sub test() Dim suji As Integer suji = 100 MsgBox "らっしゃい!今なら桃一個" & suji & "円だよ" End Sub
プログラムの中の「Dim suji As Integer」に注目してください。
変数を使う時は、この「Dim」を最初につけます。そして変数名を書いてお尻に「As Integer」というのをつけます。今回は「suji」が変数の名前です。
「変数「suji」を今から使います!」というのをコンピューターに伝えるワケです!
この事を「変数を宣言する」っていいます。変数を使う時は必ずその変数を使う前に行います!
プログラムの最初の部分にまとめて書いておくのが良いと思います。
変数を宣言した後に必ず何かしらの値を変数に入れてあげるのがきまりになってます。これを初期化するっていいます。
suji = 100
ここで初期化してます。もし入れる値が決まってない時は「suji = 0」のように「0」でも入れておきましょう!
ただ変数の内容を表示したい時は
MsgBox suji
これだけで大丈夫です。
「"」ではさまないトコロに注意です。
他のメッセージと一緒に表示したい時は
MsgBox "らっしゃい!今なら桃一個" & suji & "円だよ"
メッセージ部分は「"」で囲って、変数部分は「&」で結びます。
「&」の事を連結記号と言いまして文字と文字、変数と文字などをつなぐ事ができます。
ここに「改行コード」なるものをつなげる事によってMsgBox内で改行する事ができます。
プログラムで確認してみましょう!
'4日目 プログラム2 Sub test() MsgBox "あいうえお" & vbCrLf & "かきくけこ" & vbCrLf & "さしすせそ" End Sub
改行コード「vbCrLf」を連結する事によってMsgBox内で改行する事ができます。
これを使えばメッセージが長くなった時に横に広がるのを防止できますね。
改行コードと変数を続けてつなぎたい時などは
MsgBox "らっしゃい!今なら桃一個" & vbCrLf & suji & "円だよ"
のようにします。
変数の中に文字や文章を入れる事もできます。
今は何に使うか想像しづらいかもしれませんが、大きいプログラムの中で文章なんかが色々な場所に散らばっていると、とてもわかりづらいので変数としてまとめておく事が多いです。
'4日目 プログラム3 Sub test() Dim bunsyou As String bunsyou = "おはようございます。" MsgBox bunsyou & vbCrLf & "今日はいい天気ですね!" End Sub
文字や文章を入れる時はお尻の部分に「As String」というのをつけます。
そしてメッセージ部分を変数に入れる時は「"」で囲みます。
他は数字の時とほとんど変わりありません。
数字の時は「As Integer」
文字の時は「As String」
ここのトコロをしっかり覚えましょう!
広告
変数には「型」というものがありまして扱えるもの、範囲などが細かく決められております。
通常のエクセル上でも数値を入れた時に「数値」として扱うか「文字」として扱うか決める時がありますよね。
あんな感じです。
先ほど紹介した変数の場合は
「As Integer」・・・整数型
「-32768 ~ 32767」の範囲、小数は使えない
「As String」・・・文字型
最大約20億文字まで保存可能
のようになります。
↑扱える数の範囲を超えた場合のエラー↑
他にも
「As Long」・・・長整数型
「-2147483648 ~ 2147483647」の範囲、小数は使えない
「As Variant」・・・何でも
もちろん限度はあるが整数、小数、文字なんでも保存可能
などがあります。(他にもSingle,Doubleなどなどいろいろあります)
今回はプログラミング入門なので細かい説明は省略しますが、いくらコンピューターと言っても扱える数に限界があるというトコロを覚えておいてください。
最後の「Variant」についてですが、とりあえず何でも使える便利な変数なのですが、何も考えずにこれを使っていると思わぬエラーを引き起こす原因になったりもするので当サイトでは基本的に「整数型Integer」・「文字型String」を使って解説していきたいと思います。
'4日目 プログラム4 Sub test() Dim suji As Integer Dim suji2 As Integer suji = 100 suji2 = 200 MsgBox "sujiの内容 = " & suji MsgBox "suji2の内容 = " & suji2 End Sub
もちろん2つ以上の変数も使う事ができます。
'4日目 プログラム5 Sub test() Dim suji As Integer , suji2 As Integer , bunsyou As String suji = 100 suji2 = 200 bunsyou = "おはよう!" MsgBox "sujiの内容 = " & suji MsgBox "suji2の内容 = " & suji2 MsgBox "bunsyouの内容 = " & bunsyou End Sub
「,」でつなげて複数宣言する事も可能です。
'4日目 プログラム6 Sub test() Dim bunsyou As String Dim suji As Integer bunsyou = "テストの点数は" suji = 100 MsgBox bunsyou & suji & "点でした!" End Sub
変数同志をつなげる事もできます。
前回学んだ「Range」・「Cells」命令を使ってエクセル画面から値を取得、表示してみましょう。
'4日目 プログラム7 Sub test() Dim bunsyou As String Dim suji As Integer bunsyou = Worksheets("Sheet1").Range("A7").Value suji = Worksheets("Sheet1").Cells(8,1).Value MsgBox bunsyou & suji & "円!" End Sub
「Range」・「Cells」命令を使ってエクセル画面から値を取得する事ができます。
「A7セル」の「焼肉弁当」と「A8セル」の「480」という値をそれぞれ取得してみました。
使い方は
bunsyou = Worksheets("Sheet1").Range("A7").Value
のように「Value」まで書けばそこのセルに入っている値を取得する事ができます。
もちろん「Range」・「Cells」命令を使って変数の値をエクセル画面上に書き込む事もできます。
今回は変数に決まった値を入れるだけでしたので、次回より計算などを通して変数の値を文字通り変化させていきたいと思います。
広告
Copyright 2016 K.N/petitetech.com