{"text_format":"1","workbook":"xlsx","n_sheets":3,"sheets":["問題文＆解答","正答","読み込みシート"],"not_rendered":{"charts":0,"images":1,"macros":1,"external_links":0,"defined_names":0,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"問題文＆解答","index":0,"n_rows":10,"n_cols":4,"rows_kept":10,"cut":false,"hidden":false,"merged":[]}
[]
[]
[]
[]
[null,"問題文",null,"解答方法"]
[null,"以下の要件を満たすVBAの\nプログラムを実装して下さい。",null,"解答プログラムは\n「開発」\n→「Visual Basic」\n→「Answer」\n内のSub answer()に記載して下さい。"]
[]
[null,"要件"]
[null,"Boolean型の変数（初期値:False）を定義し, \nシート「読み込みシート」の「読み込みセル」の値（文字列）を読み込み, その値に応じて以下のように動く。\n値が「参照渡し」の場合:下の関数（参照渡し）を, 引数にBoolean型の変数（初期値:False）を渡して実行する。\n値が「値渡し」の場合:下の関数（値渡し）を, 引数にBoolean型の変数（初期値:False）を渡して実行する。\n最後に, Boolean型の変数の値がTrueになっていたら\nMsgBox関数で「（「読み込みセル」の値）：引数に渡した変数の元の値がFalse→Trueに変更されました。」と表示し, \nBoolean型の変数の値がFalseのままで変更されていなかったら\nMsgBox関数で「（「読み込みセル」の値）：引数に渡した変数の元の値は変更されませんでした。」\nとメッセージで表示する。"]
[null,"以下の二つの関数を定義する。\n関数（参照渡し）\n引数に参照渡しのBoolean型の変数をもち, 関数内でその変数の値をTrueに書き換える。（戻り値はなし）\n関数（値渡し）\n引数に値渡しのBoolean型の変数をもち, 関数内でその変数の値をTrueに書き換える。（戻り値はなし）"]

{"sheet":"正答","index":1,"n_rows":7,"n_cols":2,"rows_kept":7,"cut":false,"hidden":false,"merged":[]}
[]
[]
[]
[]
[null,"正答プログラム例"]
[null,"Option Explicit\nFunction ByRefFunc(ByRef boolVal As Boolean)\n    boolVal = True\nEnd Function\nFunction ByValFunc(ByVal boolVal As Boolean)\n    boolVal = True\nEnd Function\nSub correctAnswerExample()\n    Dim boolVal As Boolean: boolVal = False\n    Dim readStr As String: readStr = ThisWorkbook.Worksheets(\"読み込みシート\").Cells(6, 2).Value\n    If readStr = \"参照渡し\" Then\n        Call ByRefFunc(boolVal)\n    ElseIf readStr = \"値渡し\" Then\n        Call ByValFunc(boolVal)\n    End If\n    ' 参照渡し「ByRef」で関数内で値を変更した場合は元の値も変更される。\n    ' 値渡し「ByVal」で関数内で値を変更した場合は元の値は変更されない。\n    ' 変数がBoolean型の場合は「If (Boolean型変数) Then」で条件分岐ができる\n    If boolVal Then\n        MsgBox readStr & \"：引数に渡した変数の元の値がFalse→Trueに変更されました。\"\n    Else\n        MsgBox readStr & \"：引数に渡した変数の元の値は変更されませんでした。\"\n    End If\nEnd Sub"]
[null,"↑上のプログラムは\n「開発」\n→「Visual Basic」\n→「CorrectAnswerExample」\nに記載してあります。"]

{"sheet":"読み込みシート","index":2,"n_rows":6,"n_cols":2,"rows_kept":6,"cut":false,"hidden":false,"merged":[]}
[]
[]
[]
[]
[null,"読み込みセル"]
[null,"参照渡し"]