長崎の仙人-時間があれば釣りにいきたい-

佐世保市を中心に釣れない釣りブログをやってます。釣れないので時事ネタなんかも扱ってます。

変数を宣言して使用する

変数は何かを一時的に保存しておく入れ物です

何かとは時に"文字列"、時に"数値"、時には"オブジェクト"であったり、用途は様々です

ここではそんな変数の基本的な使い方を学んでいきましょう

 

変数の宣言方法はいたって簡単

 Dim 変数名 as 型

こう覚えておきます

ここで"型"という仕組みについて理解する必要があります

水を入れるのにコップを使うように、お札を入れるのに財布を使うように、変数にも様々な"入れ物"が存在します

文字列を入れる専用の型があったり、数値を入れる専用の型があるわけですね

変数を使用する際は、その変数に何を格納するかあらかじめ想定し、適切な型を選ばなければなりません!

f:id:nagasaki_hermit:20190701202523p:plain

あまり正確ではありませんが、一般的によく使われる"型"の一覧です

特に、長整数型(Long)文字列型(String)についてはよく使用するので、必ず覚えておきましょう

 

 Dim A as Long

こう宣言した場合、変数「A」には整数が入ることになるわけですね

宣言した変数には値を格納することが可能です

 A = 10

ここで注意しなければならないのが、変数への値の格納の仕方です

A = 10 という記述に対して、変数「A」イコール「10」であるという考え方は危険です

イメージとしては、A ← 10

変数「A」に「10」を格納(代入)するというイメージを持ちましょう

結果的にA = 10も、Aに10を代入することも変わらないように見えてしまいますが

 A = A + 1

このような記述が登場したとき、混乱を防ぐためにも「A ← 10」のイメージは大事にしてくださいまし

この場合、右辺を先に計算し、左辺に代入します!

 A ← A + 1 ですね!

 

さっそくですが、変数を使用したマクロ例を見ていきます

f:id:nagasaki_hermit:20190701204724p:plain

「Sample1」というマクロです

A,B,Cと変数が3つ宣言されていることがわかるでしょうか?

かつ、変数A,B,CはLong型で宣言されていますね?

続けてみていくと、変数Aには10が代入され、変数Bにも10が代入されています

変数CにはAとBの和が代入されることになります

それではこのマクロを実行した時、A1セルに表示される結果は何でしょうか?

f:id:nagasaki_hermit:20190701205559p:plain

20ですね

 

もうひとつ応用編として、変数を使ったマクロを見ていきましょう

f:id:nagasaki_hermit:20190701210211p:plain

「Sample2」というマクロです

このマクロを実行した時、A1セルに表示される結果は何でしょうか?

 

 

 

答えは「30」でございます

f:id:nagasaki_hermit:20190701210533p:plain

変数「A」の中身が途中で変化することがポイントです

初のナイトエギングは暗かった・・・

私のメインフィールドである佐世保市はすっかり梅雨入り

それでも金曜日の夜~土曜日の午前中にかけては曇りの予報だったため、人生初のナイトエギングに挑戦してみたのであった

 

到着したのは土曜日の午前3時

もちろんあたりは真っ暗なのです

常夜灯のある釣り場でもよかったのであるが、私には当初作戦があった

それが「車のライトで照らせ」作戦である

 

今回の釣り場通称「ボーナスステージ」は駐車スペースから堤防まで激近!

車を停めてヘッドライトで照らせば、暗くても安心^o^

そんな適当な心構えでナイトエギングへと挑戦したのである

ところがどっこい

到着してみるとめちゃくちゃ気になるエンジン音

近隣住民の方の迷惑になり、通報されてはいけませんね

 

家の近くまで行ってみて、エンジン音がうるさくないか確認してみる

正直耳を凝らせば聞こえてくる程度・・・ではあったが、聞こえてくる以上「車のライトで照らせ」作戦は断念!!

iPhone8のライトのみでがんばることになったのでありました

 

iPhone8のライトも悪くはないけど、明るくなるのは手元のみで竿先のラインまでは見えない

目での情報が何も得られない状態だったので、普段やらないPEラインに指をかけ反応がないか探る

それでもワンチャンスあった・・・一度だけラインが弾かれるような"バチンッ"という手ごたえを感じましたよ

チャンスをものにできなかったのが悔しいです...>_<...

 

仕事終わりに徹夜で行ったのが運の尽き?

朝マヅメの時間帯は眠たくてしょうがなかったでございます

このままだと堤防から落ちる!そんな予感がしたため、朝マヅメのいい時間帯だったけど落ちる前に撤収することができただけでも御の字

眠いまま車の運転もしたくなかったので、車で仮眠を取って帰路についたのでありました

一体なにをやってるんだ私は・・・そう思った

オブジェクト・プロパティ・メソッド

ここではExcelVBAにおけるオブジェクトプロパティメソッドについて学んでいく

ExcelVBAを学習し始める人にとって、最初の挫折ポイントであり最も重要なポイントでもあるので、しっかりと理解してもらいたい

マクロで何かを作ろうと思ったとき、Webで調べる人も多いはずである

すると、このオブジェクトはこのプロパティが使える・・・とかこのメソッドをサポートしています・・・とかオブジェクト・プロパティ・メソッドという言葉はよく出てくる

その際に、これら用語を理解していないと折角調べたとしても意味不明のまま終わってしまう

そうならないためにも、オブジェクト・プロパティ・メソッドについては正しく理解しておく必要があり、理解してしまえば簡単な話なのである

 

オブジェクト

オブジェクトとは、ExcelVBAで操作の対象となる"物"のことである

プロパティ

プロパティとは、物(オブジェクト)を構成する要素や因子である

メソッド

メソッドとは、物(オブジェクト)に対する命令や操作である

 

具体的に学んでいく

"人"というオブジェクトを用意してみる

ExcelVBA的に記述するとこうなる

 Dim Human as Object

これで"人"というオブジェクトが生成できる※正確には"Human"だが

出来立てのオブジェクトにプロパティを付与してみる

 Human.age = 25

 Human.sex = man

 Human.height = 175cm

 Human.weight = 70kg

何となくでも理解できるだろうか?

ただの"人"というオブジェクトに、プロパティを付与することでオブジェクトをより具体化できる

ここでいう人は年齢25歳、性別男、身長175cm、体重70kgなのである

さらにメソッドを追加することで、この人に命令や操作が可能となる

 Human.walk

この一連の記述だけで、身長175cm体重70kgの25歳男性は歩き始める

 Human.walk = 20m

こう記述すれば、20m歩いてくれる

これがExcelVBAにおける、オブジェクト・プロパティ・メソッドの関係なのである

 

 

よりExcelVBAっぽく学習する

f:id:nagasaki_hermit:20190630204630p:plain

Lesson2というマクロを見てみる

ここで操作の対象となるオブジェクトは"Cells(1,1)"つまり"A1"セルである

オブジェクトにたいして、2つのプロパティを付与する

・Font.Color = RGB(255,0,0)

・Font.Bold = True

この記述により、A1セルを文字色赤・太字にすることができる

最後にメソッドを使って命令を与える

・Value = "ハロー"

セルの中身に"ハロー"と書き込む命令である

 

マクロ"Lesson2"を実行することで

f:id:nagasaki_hermit:20190630205629p:plain

A1セルに対して、文字色:赤、太字、ハローと書き込むことが可能となる

 

オブジェクト.プロパティ

オブジェクト.メソッド

 

この関係性を是非とも理解してください

Subプロシージャ

前回までの学習で、マクロを作る場合VBAってどこに記述すればよいのか学びました

キーワードは「標準モジュール」でしたね

理解してない方は・・・戻ろうね?

 

今回は実際にVBAを使ってマクロを作成していきましょう

先ず、プロシージャとは何か?

マクロ(プログラム)を構成する最小単位です

「マクロ」は単一のプロシージャや複数のプロシージャで構成されています

ここでは、マクロを作成する場合、最低1つはプロシージャがいるんだな・・・くらいに思っておいて大丈夫です

 

さらにプロシージャには「Subプロシージャ」と「Functionプロシージャ」が存在しています

Functionプロシージャは追々学習するとして、今回は「Subプロシージャ」について学んでいきましょう

 

Subプロシージャの記述は簡単です

 Sub マクロ名()

 

 End Sub

これだけ。ね?簡単でしょ?

マクロ名は自分で決めてください

アルファベットや数字が使用できます

私は使用しませんが、漢字・ひらがな等も使用可能です

注意するとしたら、マクロ名の先頭に数値は使えません。アンダーバーは使用可能ですが、その他記号やスペースを使用することはできません

 

SubプロシージャはExcelマクロを学習する上で、何度も出てくることなので呪文のように繰り返して覚えましょう

Sub マクロ名() ~ End Sub

 

それでは、VBEに至極簡単なマクロを作成します

f:id:nagasaki_hermit:20190630191231p:plain

13秒くらいでできました^o^

これでも立派なマクロでございます

この場合マクロ名は「Lesson1」になっていますね?

"MsgBox"というのはExcelVBAの関数を使用していますが、関数については追々学びます

さて、では新しくこの世に生まれてきてしまったマクロ「Lesson1」を実行してみましょう

f:id:nagasaki_hermit:20190630191918p:plain

みんなやっほー^o^

 

きちんと動いてくれました!

Subプロシージャ覚えてくれましたか?

 

Sub マクロ名()

※ここに関数や演算式を記述し処理を行わせていく※

End Sub

簡単なので是非覚えてみてください

VBAってどこに書くの?VBEditorを起動しよう

前回の記事で「ExcelVBA」と「Excelマクロ」の違いは理解できたと思います

理解できていない人は・・・前回記事に戻ろうね?

 

ここで学んでいくのはVBAってどこに書いていけばいいの?です

さっそくですが、大事なことなので覚えておきましょう

・VBAのコードはセルに入力した文字同様にブック毎に保存される

・VBAを記述・編集するときはExcelとは別のVBEを使用する

 

Excelでマクロを作ろうと思ったときは、VBEを起動すればいいわけですね

ところが、このVBEはExcelの初期設定では有効になっていません!

初心者お断りな状況ですが、ここで引き返してはいけない

ちゃんと教えてあげるから脱・初心者目指そうね?

 

 

 

開発タブを有効にする

 

f:id:nagasaki_hermit:20190630140723p:plain

なんの変哲もなさそうなExcel画面ですが、よく見ると開発のタブが表示されていると思います

この「開発」タブこそVBEを起動する重要なタブ

開発タブを有効にする設定を学びましょう

 

①ファイルを選択

f:id:nagasaki_hermit:20190630141118p:plain

 

②オプションを選択

f:id:nagasaki_hermit:20190630141319p:plain

フィードバックとかアカウントとか他に選べるとこ沢山あると思うけど、ここは我慢して「オプション」を選択

 

③リボンのユーザー設定を選択

f:id:nagasaki_hermit:20190630141618p:plain

 

④開発にチェック入れて、OK

f:id:nagasaki_hermit:20190630141705p:plain

初期設定だと「開発」にチェックが入っていない状態である

そこで開発にチェックを入れて、OKを押そう

キャンセル押しちゃダメ!ここまでの苦労が水の泡・・・

ここは怪しくとも、OKボタンを押すしかない!!

 

Excel上に開発タブが表示されたらめでたしめでたし

 

VBEを起動する

開発タブを表示することに成功したのなら、早速VBEを起動してみよう

f:id:nagasaki_hermit:20190630142236p:plain

 

起動してみるとこんな画面

f:id:nagasaki_hermit:20190630142704p:plain

VBAProject(Book1)と表示されている、赤枠の部分

ここに「Sheet1」や「ThisWorkBook」等が表示されていると思われる

右の余白みたいな箇所にVBAを使ってコードを記述していくわけだが早まってはいけない!

まだコーディングしていくような段階ではない!!焦りは禁物

・Sheet1

・ThisWorkBook

初心者はここにコードを書いてはいけない

これらに対してコードを書く場合は使いどころというものがある

それは追々勉強していきましょう

兎にも角にも、コードを書く場合は「標準モジュール」ここに記述していくことを覚えておく

「標準モジュール」・・・覚えておこうね

 

標準モジュールを表示する

初期設定では表示されていない「標準モジュール」ですが、表示させていきましょう。簡単です!

 

f:id:nagasaki_hermit:20190630144437p:plain

標準モジュールを表示したいブック(※ここではBook1というファイル名)を選択し、挿入から「標準モジュール」を選択

UserFormとかあるけど、今は無視

きちんとできている場合こうなります

f:id:nagasaki_hermit:20190630144632p:plain

無事「標準モジュール」が表示されましたね

VBAでのコード記述はSheet1やThisWorkBookに対しても可能ですが、初めは標準モジュールに記述するものであると覚えておきましょうね

これでVBAを使ってコードを記述していく準備が整いました!

次回からいよいよコードを記述していく術を学んでいきましょう

ExcelVBAとマクロ

ExcelVBAってご存知ですか?

Excelマクロなら聞いたことある!という人も多いと思います

ここでは「VBA」と「マクロ」の違いを理解し、基本的な事柄を学んでいきましょう

 

ExcelVBA

ExcelVBAとは何か?

VBA・・・Visual Basic for Applicationsの略

主に、マイクロソフト製のオフィスシリーズに搭載されている「プログラミング言語」である

そう、VBAとは何か?という質問に対しては・・・プログラミング言語であると回答するのが正解である

C言語、C++、Ruby、Python今現在において様々存在しているプログラミング言語であるが、VBAもその一つなのであると覚えておいてもらいたい

 

Excelマクロ

Excelマクロとは何か?

Excelというアプリ上で、VBAを使って作成されたプログラム

VBAというプログラミング言語を使って作成されたプログラムのことをマクロと言います

 

Excelマクロで可能なこと

Excelマクロを使ってどんなことができるの?そう疑問に思う方も多いと思われる

多くの方はExcelというアプリケーション上のみで動作するものと勘違いされている方も多い

ところがどっこい、Excelマクロの神髄というのは他アプリへの干渉も可能なところにあると私は思う

オフィス製品である「Word」、「PowerPoint」はもちろんのこと、メモ帳を始めとするアプリやInternetExplorerにたいする干渉もお手の物

大袈裟に言うと、人がパソコン上で操作している多くのことがExcelマクロでも実行可能であるということをお伝えしたい!

Excelマクロでできることというのは、多岐にわたる

 今はまだピンとこなくとも、このサイトを通してExcelVBAを学んでもらい「こんなこともできるんだ!」と一人でも多くのかたに魅力をお伝えできればこれほど嬉しいことはない

夏エギングに向けて何かする

f:id:nagasaki_hermit:20190626200931p:plain

なんじゃこりゃ~~( ゚Д゚)

佐世保市の週間天気予報ですが、天気は"梅雨"!

雨とかそんなレベルじゃない・・・梅雨でございます!!

 

これは、釣りに行くという天気ではないですね

今週末は自宅待機の予感がします

7月からについての釣り生活についてあれやこれや考えてきましたが、、、

nagasaki.hateblo.jp

 

結果的には7月以降もエギングすることに決めましたとさ

決め手になったのはこの動画

www.youtube.com

YAMASHITAエギングマイスターによる夏イカエギングセミナー

いや~便利な世の中だ~

動画であがってるんだもの

 

動画を見てもらった方が早いのだが、、、夏イカに関してプロが言ってることは

・春より夏の方が活性が高い

・春より夏の方が釣れる

・日中帯はしんどい(気温)から、マヅメでGo

・様々なサイズを狙える

・サイズは春に比べるともちろん小さくなる

・たまに春イカの生き残りのようなとんでもないサイズが出る

・ボトム狙いではなく、中層を引いてくるイメージを

私のエギングというのは"食べるということ"に特化しており、特に測ったりもしないので、サイズはどうでもよいのですが春より釣れるとなれば・・・

これは行くしかない!!

 

釣り方については、ボトムボトムを攻める必要性はないらしいですね

活性が高いらしいので、中層メインにいきましょう

エギについては、3号を主軸にしてあとは適当によろしく!っといった感じ

 

らしい、らしいと伝聞口調な記事となってしまいましたが、実態はこの目で確かめてきます!

そして、イカマップ2019年夏シーズンを意義あるものに!!

 

夏は完全にオフシーズンと思っていただけに、私にとってはありがたい一報

まだエギングができるなんて幸せ( *´艸`)

あとは天気だけ・・・週末だけでも晴れてくださいまし

 

どうでもいい話ですが、はてなブログProへと進化しました(/ω\)

ブログ上部に意味深?なメニューバーが追加されております

※スマホ版は未対応

まだ全然リンク飛べない状態ですが、ぼちぼちブログ改修にもトライしていきます

週末雨降った日はこれまでサボりにサボっていたExcelVBAの勉強に時間をあてましょうかね