当サイトはアフィリエイト広告を利用しています

VBA学習ツール無料配布!#11 テーマ:vbaのByRefとByValの違いを理解しよう!

vbaのByRefとByValの違いを理解しよう! VBA学習
vbaのByRefとByValの違いを理解しよう!

格安サービス提供のワケを赤裸々, 告白…過去のサービス料金公開

業務自動化を「格安」でエンジニアに依頼したい方にオススメのサービスがございます!

それは他でもない, 私がココナラで提供している格安サービスです👇

今回はなんと, 実際の過去のサービス料金をお見せして, 格安サービス提供のワケをお伝えします!

VBA開発の相場は,

実装期間1日~1週間程度のシンプルな機能開発は3万円~10万円程度,

実装期間1カ月~3カ月の複雑な機能開発はなんと, 30万円~100万円程度です!

これを念頭に, 過去に私が提供したサービスの料金*をご覧下さい👇

*こちらでお見せするデータは「VBA開発・調整案件のサービス」かつ「サービス名でご依頼者様の情報が漏れないサービス」の料金データに限定しています。

ココナラでの料金データ
ココナラでの料金データ

格安でVBA開発・調整サービスを提供していることをお分かり頂けるのではないでしょうか!

私が, ここまで格安でサービス提供しているのには, ある事情があるんです…

実は, どんなに安くても, 依頼を引き受, 実績をつむ必要があるんです…

ココナラでは多くの優秀なエンジニアがサービス提供しています!

この中で今後, 依頼を勝ち取り続けるには, 実績が必要です!

ご依頼者様に選ばれる為には、実績が必要!
ご依頼者様に選ばれる為には、実績が必要!

その為に, 現在, 私は低価格でも依頼を受けさせて頂いております!

ぜひ, ご利用頂けるとありがたいです👇

本学習テーマ紹介動画

👆本学習テーマをYouTubeで紹介しています!
チャンネル登録宜しくお願いします!
効果音ラボ ナレーション 音読さん

*基本的に, 記事投稿日翌日夜18:30頃から, 動画を閲覧できます。

本学習ツールでの問題文・解答例

問題文
以下の要件を満たすVBAのプログラムを実装して下さい。

要件

Boolean型の変数(初期値:False)を定義し,
シート「読み込みシート」の「読み込みセル」の値(文字列)を読み込み, その値に応じて以下のように動く。
値が「参照渡し」の場合:下の関数(参照渡し)を, 引数にBoolean型の変数(初期値:False)を渡して実行する。
値が「値渡し」の場合:下の関数(値渡し)を, 引数にBoolean型の変数(初期値:False)を渡して実行する。
最後に, Boolean型の変数の値がTrueになっていたら
MsgBox関数で「(「読み込みセル」の値):引数に渡した変数の元の値がFalse→Trueに変更されました。」と表示し,
Boolean型の変数の値がFalseのままで変更されていなかったら
MsgBox関数で「(「読み込みセル」の値):引数に渡した変数の元の値は変更されませんでした。」
とメッセージで表示する。
以下の二つの関数を定義する。
関数(参照渡し)
引数に参照渡しのBoolean型の変数をもち, 関数内でその変数の値をTrueに書き換える。(戻り値はなし)
関数(値渡し)
引数に値渡しのBoolean型の変数をもち, 関数内でその変数の値をTrueに書き換える。(戻り値はなし)
要件

解答例

Option Explicit
Function ByRefFunc(ByRef boolVal As Boolean)
    boolVal = True
End Function
Function ByValFunc(ByVal boolVal As Boolean)
    boolVal = True
End Function
Sub correctAnswerExample()
    Dim boolVal As Boolean: boolVal = False
    Dim readStr As String: readStr = ThisWorkbook.Worksheets("読み込みシート").Cells(6, 2).Value
    If readStr = "参照渡し" Then
        Call ByRefFunc(boolVal)
    ElseIf readStr = "値渡し" Then
        Call ByValFunc(boolVal)
    End If
    ' 参照渡し「ByRef」で関数内で値を変更した場合は元の値も変更される。
    ' 値渡し「ByVal」で関数内で値を変更した場合は元の値は変更されない。
    ' 変数がBoolean型の場合は「If (Boolean型変数) Then」で条件分岐ができる
    If boolVal Then
        MsgBox readStr & ":引数に渡した変数の元の値がFalse→Trueに変更されました。"
    Else
        MsgBox readStr & ":引数に渡した変数の元の値は変更されませんでした。"
    End If
End Sub

上のプログラムが実際に動く様子は, 下の学習ツールをダウンロードして, 確認してみて下さい!

本学習ツールの内容

下👇の画像のように, 「vbaで関数に引数を設定する方法」や「参照渡し(ByRef)と値渡し(ByVal)の違い」を学ぶことが出来ます!

*2枚目の「正答シート」の画像は, 学習前に答えを知りたくない方は飛ばして見て頂くようお願い致します。

VBA学習ツール-vbaのByRefとByValの違いを理解しよう!の問題文&解答シート
VBA学習ツール-vbaのByRefとByValの違いを理解しよう!の問題文&解答シート
VBA学習ツール-vbaのByRefとByValの違いを理解しよう!の正答シート
VBA学習ツール-vbaのByRefとByValの違いを理解しよう!の正答シート
VBA学習ツール-テーマ:vbaのByRefとByValの違いを理解しよう!の読み込みシート
VBA学習ツール-テーマ:vbaのByRefとByValの違いを理解しよう!の読み込みシート

本学習テーマの格言

  • 参照渡し(ByRef)と値渡し(ByVal)の違いを理解しよう!
参照渡し
(ByRef)
 値渡し
(ByVal)
関数内で引数の変数
の値を変更した場合
元の値が変更されるか
変更される変更されない
参照渡し(ByRef)と値渡し(ByVal)の違い

VBA設定

尚, 本ツールには, 「VBA」(Excelのプログラミング言語)が組み込まれている為, 以下のマニュアルに従った設定・エラー時の対処が必要となります。

ダウンロード

ぜひ, 勉強にご活用下さい!👇

サイト作成者
burozima

千葉大学院生フリーランスエンジニア
総販売額761,000円 ココナラ(32件),CrowdWorks(2件)
Python,VBA,GAS,C独学→70万円越え達成!
TOEIC725点

burozimaをフォローする
VBA学習
広告
シェアする
burozimaをフォローする

コメント

タイトルとURLをコピーしました