なずブログ

インフラSE、Java開発、リモートワークエンジニアな人のメモ帳

VBA初級~関数と返り値~

f:id:nazuna_0124:20190830190707p:plain

ツイッターに投稿してみた画像を流用してみるテストっと。


苦手だから作るの大変なんですよ!!


おつかれさまです。なずなです。


今日は金曜日なので、がんばってみてコードを付けつつの投稿です。


今日の記事あたりがすんなり理解できていると

VBAとしてはそろそろ中級者が見えてきますです。



概要

ここで説明するのは、命令すると同時に受け取れるものが返ってくるものです。

いろいろ種類があって複雑です。ざっくりと以下になります。


  1. 組み込み関数

  2. 自作関数

  3. オブジェクトメソッドの返り値

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


4だけ実は仲間外れとも言えます。

使い方はそっくりで、最初はわからんので一緒に覚えちゃいましょう。


ややこしいので今回は省きますがこれに加えてワークシート関数もあります。


1. 組み込み関数

初めから使える関数のことですが、これだけだとなんとも。


Sub 組み込み関数()

    Debug.Print Now()
    Debug.Print Format(Now(), "mm/dd")
    Debug.Print Left("Hello", 2)

End Sub

この辺で覚えておきましょう。

Debug.Print はずすとエラーが出ちゃいます。


2. 自作関数

説明のために自作と付けていますが、普通に関数、Functionって呼ばれます。


Sub 自作関数を実行()

    Debug.Print 自作関数()

End Sub


Function 自作関数() As String
    Dim 返す文字列 As String
    

    返す文字列 = "今日は" & Format(Now(), "mm/dd") & "です"

    自作関数 = 返す文字列

End Function

最初は使いどころが思いつかないかもしれません。

こういう風に作れるってだけでだいじょうぶです!



3. オブジェクトメソッドの返り値

まずはコードから

Sub オブジェクトのメソッド()
    Dim シート As Worksheet
    
    Set シート = Worksheets.Add
    
    Debug.Print シート.Name
    
End Sub

WorksheetsのAddメソッドを使うと、追加したシート

オブジェクトとして返ってきます。


これは受け取らなくてもOKパターン。


そして、ついでに4のプロパティもやっちゃってます。



オブジェクトを受け取っているので追加したシートが特定できてます。


変数のプロパティでnameを指定するとシート名が出てくるってわけですねー。


もちろん、nameプロパティなので=で名前を指定してやれば変更できます。



なかなか使い分けが難しいです。

わかんないところあったら聞いてください!

VBA初級の指標~オブジェクト・関数・サブプロシージャ~

f:id:nazuna_0124:20190829204714p:plain

noteはじめてました!(こっちでいうの遅

note.mu

今でも使うぞVBA


使われなくなる日がくるんでしょうか。


おつかれさまです。なずなです。


今回は抽象的なお話です。コードはそのうちnoteに書きます。

そっちを参考にしてね!!


オブジェクト

Rangeもオブジェクト


Workbook、WorkSheetもオブジェクト


最初は大変ややこしいですねー。


メソッドとプロパティがあるのはご存じだと思います。


実はこれ最初は「覚えるだけ」です。


炊飯器の炊飯ボタン押したら、なんでごはん炊けるの?とか

効かれると困るのです。


設計者がそう作ったから!!


おおよそ英語の意味通りの「結果を出してくれる」ので

推測しつつ覚えていきましょう。



VBAの関数

returnじゃない!!(他言語触ったことある人向け)


日付関連と文字列操作の関数を優先して覚えておきましょう。


どんなのがいいか。。。


最初は最低値、最大値を指定したらランダムな数字を「返してくる」

関数とかいかがでしょう。


サブプロシージャ

引数貰って、実行されるやつです。


使いまわし用の命令ってことですね。


文字列わたしたらdebg.printしてくれるものを、

sub dp() みたいに作ると少しらくかもですよ!



最近すぐ寝ちゃうので、なかなか書けないのですが

地道に進めてみますよ~

VBAで変数宣言はなんでしなくちゃいけないの

f:id:nazuna_0124:20190825213642p:plain

最初は変数宣言大嫌いでした

すっごくめんどくさいんだもん!!


おつかれさまです。なずなです。

あまり説明をみないのでぱぱっと書いてきます。


変数名を間違えないようにするため

変数名を間違えることによるバグはエラーがでないので、

発見しにくいのです。


宣言しとけば、間違って初めて出てきた変数ではエラーが出ます。


コードを書く量が少ない最初は実感しにくいですが大事!!



型指定で入力補完をするため

宣言というより型指定のおはなしだったりも。

メソッドとプロパティを全部覚えてられません

なんとなーくで覚えておけばよい入力補完は大変べんりです。


そうじゃなければ、どこからかコピペしたり、またぐぐったり

このひと手間が勉強意欲をそぎます


最初に覚えるRangeは得に型指定して宣言しておきましょーね!!



変数の最初の値を保証したい

宣言というより初期化の話だったりも。

Longにしとくと0が、Stringだと""(空文字)になってたりします。

VBAだと宣言と同時に初期化できないんですが、この辺の感覚おぼえときましょう。



ちなみに一定以上勉強が進むか、英字タイピングが苦手なうちは

日本語の変数名使っちゃってオッケーです


そんなことよりコード書こう!!

ブログとツイッターがきれいにでない

ブログ記事のツイッター投稿がきれいに 表示されない!! f:id:nazuna_0124:20190824144635p:plain


おつかれさまです。なずなです。


ツイッターってどういう風に表示してるんでしょうねー。


というテストだけのテスト!!


ぐぐってもわかんなかったんだもん!!


ここはわたしの検証環境です。



デザインセンス自体がないのに、デザインを思いついたのして

表示する技術にも難があるという二重の苦しみ。



本当にこまったもんです。


誰かししょーになって!

プログラムの勉強が途中で挫折する理由

f:id:nazuna_0124:20180609224553p:plain:w180

変数やらループやらオブジェクト指向やら、

そんな解説を一瞬書こうとしてやめました!!


おつかれさまです。なずなです。



実はプログラムの勉強が続かない理由として

もっとも大きいのは他の習慣が続かないのとおんなじです。


ダイエットや筋トレ、資格勉強ですね。



どれだけ効率が悪くても、ある程度の強制力がある

プログラミングスクールや、職業訓練がおすすめできる理由でもあります。



そんな話はおいといて


比較的プログラム特有なものを照会。


プログラムで出てくる概念が理解できずにイライラするから続かない

ループもオブジェクトもですね。慣れてくると意識もしてないからやっかいです。


対処方法は、わかるまで聞くこと。

一旦先に進んで、必要になったら戻ること。



文章からプログラムへの反復練習が足りない

九九をループで書いて~とかそんな簡単なものでも。

プログラムとはコンピューターを働かせるための命令書なので、

何を実現したいかをプログラムに変換できないとなにもできないです。


この練習が不足していて、何を作るかわからない状態になってやめてしまいます。


対処は自作の問題、他人のソースコードにコメントを付ける、

コピペのソースを編集する。



先の長さにめげる

これはどうしようもないかもしれません。

慣れてくると、完成までの時間がわかってしまうだけに諦めたくなります。

別に儲かるわけでも、人に喜ばれるわけでもなければ猶更です。


自分でやって満足できる人は心配なし。


対処法は誰でもいいので自慢してみる。

どこかしらにアウトプットしてみる。


最悪、わたしにツイートしてくれればいいです!←

仕事飽きたのでどうしよう

f:id:nazuna_0124:20190815205549p:plain

画像サイズこれでどう!?

ツイッターにうまく出なくて困りました。

16:9がいいらしいとのこと。



おつかれさまです。なずなです。



仕事あきた!!


困ったので直近の対策などを。



日銭を稼いでいると考え直してみる

若干の今の状況の肯定ほうほうです。


とりあえず、ご飯食べれるの大事!!


他の方法を思いついていないのだから仕方ない。



仕事のハードルを上げてみる

早く終わらせるとか、質をあげるとか。

言ってみはみたもののこの方法は×


なんでって、がんばったんだから給料上げて!!と感じて

ストレスたまるから



そういう時期と諦める

転職活動はしています。

待ちの時間があるのはしょうがないです。


獲物を待つ猟師の気分でじっくり待ちましょう


余計なことをする

こういうときこそVBAの出番です。

目についたいやな仕事の部分のサンプル(モック)をさっくり作ります。


上司に投げつければめでたく好きな仕事の社内受注です。


しかし、この方法はやり飽きました!!

なずなとVBAとExcelと~転職そして職業訓練へ~

f:id:nazuna_0124:20190813222836p:plain:w180

このくらいのサイズだとどうでしょー?

完全にテストしてます。


おつかれさまです。なずなです。



あれ? わたしお給料安いんじゃない??


それが転職のきっかけです。



やっぱり外の世界を知らないとわからないものですよね。

明らかに当時の私は仕事の範囲が広すぎでした。



仙台っていったって安くても月の単価80とかそのくらいはあっても。。。



なかなか勇気の出ない私に、いろいろすったもんだしたあげく。


「なずなちゃんなら絶対うまくいくよ」


と、信頼できる上司さんと固い握手をして退職したのでした。


(退職当時は職業訓練に行くのは決まっていません)



やったこととしては相当の自信がありましたが、

それが通用するのかは不明だったのです。



まともに就職活動もしたことない。

そんなわけで職業訓練にお世話になったのでした。



いまでもよい判断だったとしみじみ思います。


おんなじような人、増えるといいなー