2020.03.10

『Excelマクロ&VBA やさしい教科書』正誤情報

Excelマクロ&VBA やさしい教科書 [2019/2016/2013/Office 365対応]

本書内の記載のうち、以下の項目で誤りがありました。
修正内容を提示させていただきます。
ご迷惑をおかけいたしました事、深くお詫び申し上げます。

※初版第5刷

p.44

右隣のセルC3の値を

右隣のセルC2の値を


セルC3の値を変更するマクロ

セルC2の値を変更するマクロ


必ずセルC3の値を変更します。

必ずセルC2の値を変更します。


セルC3に「ABC」と入力する操作を

セルC2に「ABC」と入力する操作を

 

※初版第4刷

p.317 繰り返し処理

For カウンタ変数 = 開始値 To 終了値
繰り返すコード
End If

For カウンタ変数 = 開始値 To 終了値
繰り返すコード
Next


For カウンタ変数 = 開始値 To 終了値 Step -1
繰り返すコード
End If

For カウンタ変数 = 開始値 To 終了値 Step -1
繰り返すコード
Next


For Each メンバー変数 In コレクション/配列
繰り返すコード
End If

For Each メンバー変数 In コレクション/配列
繰り返すコード
Next

※初版第3刷

p.85
誤:セル.Folmula = “=数式”
正:セル.Formula = “=数式”

※初版第2刷

p.79
「削除」機能のオプションと対応する定数
誤:xlShiftToUp
正:xlShiftUp

p.106
表内の相対的な位置のセルを指定する

.Cells(3, 2).Value = “レモン”
‘ 相対的なセルの指定

‘ 相対的なセルの指定
.Cells(3, 2).Value = “レモン”

p.115


p.167
Hint テーブル範囲は「可視セルのみをコピー」が安全

テーブル範囲にフィルターをかけて抽出結果をコピーする際のセオリーは、「フィルターをかけてから、SpecialCells メソッドで可視セルのみをコピー」となります。
これは、Range プロパティ経由で全体をコピーする際にも、DataBodyRange プロパティ経由でデータ部分のみをコピーする際にも共通です。というのも、テーブル範囲に設定されているセル範囲は通常のセル範囲と違い、Copy メソッドでコピーする際にフィルターの結果を無視してコピーすることがあるのです(無視しないこともあります)。
なんとも戸惑う動きなので、将来的には修正されるのかもしれませんが、現状ではSpecialCells メソッドを併用し、「可視セルをコピー」するようにしておくのが「安全」のようです。


テーブル範囲にフィルターをかけて抽出結果をコピーする際のセオリーは、「フィルターをかけてから、SpecialCells メソッドで可視セルのみをコピー」となります。
これは、Range プロパティ経由で全体をコピーする際にも、DataBodyRange プロパティ経由でデータ部分のみをコピーする際にも共通です。というのも、テーブル範囲を操作する場合、「実行時にテーブル内のセルを選択しているかどうか」で、一部処理の挙動が変わるためです。フィルター結果をコピーする場合では、テーブル外を選択しているとテーブル全体をコピーし、テーブル内を選択していると、抽出結果のみをコピーします。
なんとも戸惑う動きなので、将来的には修正されるのかもしれませんが、現状ではSpecialCellsメソッドを併用し、「可視セルをコピー」するようにしておくのが、両対応できて「安全」のようです。

p.230
リストを使って一括置換する
誤:For Each rngIn Range(“B3:C8”).Rows
正:For Each rng In Range(“B3:C8”).Rows

※初版第1刷

p.52
マクロ「在庫クリア」
誤:Sub在庫クリア()
正:Sub 在庫クリア()

p.53
「在庫クリア」編集前
誤:Sub在庫クリア()
正:Sub 在庫クリア()

「在庫クリア」編集後
誤:Sub在庫クリア()
正:Sub 在庫クリア()

p.71
セルに値を設定する
誤:Sub値の設定()
正:Sub 値の設定()

p.72
プロパティを使って値を設定する
誤:Subプロパティの利用()
正:Sub プロパティの利用()

p.74
メソッドを使って機能を実行する
誤:Subメソッドを利用()
正:Sub メソッドを利用()

p.75
引数の使用例
誤:Subメソッドで引数を利用()
正:Sub メソッドで引数を利用()

p.78


p.102


p.157
誤:基準セル.Preview
正:基準セル:Previous

p.172
誤:※qtyは価格を表す~
正:※qtyは販売数量を表す~

p.178、181
誤:接頭詞
正:接頭辞

p.189
Format関数に指定する書式文字列
誤:d 和暦
正:d 日

p.230
リストを使って一括置換するマクロ
誤:For Each rngIn Range(“B3:C8”).Rows
正:For Each rng In Range(“B3:C8”).Rows

p.231

実行後


実行後

p.238
誤:一時体集中は様々な状態を調べるチャンス
正:一時停止中は様々な状態を調べるチャンス

p.252
誤:関数戻り値を受け取る場合はカッコで囲む
正:関数の戻り値を受け取る場合はカッコで囲む

p.268
イベントの連鎖を防止するマクロ
誤:Private Sub Worksheet_Change(ByValTarget As Range)
正:Private Sub Worksheet_Change(ByVal Target As Range)

p.304
対象ブックのデータを集計と転記する
誤:Sub 新規ブックの作成()
正:Sub 新規ブックに集計()