日経BP社 ブックス&テキスト Online

「マイクロソフト関連書」「Autodesk公式トレーニングガイド」「MOS攻略問題集」「セミナーテキスト」「スクール標準教科書」などの各シリーズ、各種IT関連書籍をご案内するサイトです。
書籍訂正情報

『ひと目でわかる Microsoft Excel VBA入門』をお買い上げの方へ

2013年5月2日更新

本書の内容に誤りがございました。次のとおり訂正してお使いください。
お手元の書籍の刷数は、奥付でご確認ください。

初版1刷、2刷まで

訂正箇所 訂正内容
p.29 ヒント追加
【ヒント】個人用マクロブックを削除するには
Windows XPの場合にはC:\Documents and Settings\〈ユーザー名〉\Application Data\Microsoft\Excel\XLSTARTフォルダにあるpersonal.xlsを削除してください。
ただし、「隠しファイル」のため、エクスプローラのフォルダオプションですべてのファイルとフォルダを表示する設定になっていなければ確認できませんので、ご注意ください。
p.51 ヒント追加
【ヒント】作成した証明書を削除するには
証明書を削除する場合は、次の手順で行います。
@Internet Explorerを起動する。
A[ツール]メニューの[インターネットオプション]をクリックする。
B[コンテンツ]タブをクリックし、[証明書]ボタンをクリックする。
C[証明書]ダイアログボックスに表示される一覧から、削除したい署名を選んで[削除]をクリックする。
p.80
4行目
「×(乗算)」の記述は、正しくは「*(乗算)」となります。
258ページ
「記号・数字」の
項目の10行目
「×(乗算)....80」の記述は、正しくは「*(乗算)....80」となります。

初版1刷〜4刷まで

訂正箇所 訂正内容
p.75
本文の下から
2行目
「Subプロシージャと異なり、<パラメータ>が必要です。また、」の記述は削除します。SubプロシージャとFunctionプロシージャの違いは戻り値を返すかどうかであるため、説明として不適当でした。
p.106
ヒントの左段の
下から3行目
「2文字目以降は、数字、漢字、アルファベット、アンダースコア(_)が使えます。」の記述は、正しくは「2文字目以降は、数字、漢字、ひらがな、カタカナ、アルファベット、アンダースコア(_)が使えます。」となります。
pp.128-129
第8章の
サンプル
マクロについて
初版4刷までのコードは、最後の会社の請求書が印刷されずに終わってしまうという不具合がございます。
これは、以下のif文の位置が不適切でした(128ページのEブロック)。
If KaisyaName = "" Then  ' 発送先会社名が空のセルなら、
                         ' 一覧終了とみなす
    Exit For
End If
正しいif文の位置は、下記のように「 Range("A2").Select 'セルA2に発送先会社名を書き込む」(129ページのHブロック)の直前になります。
If KaisyaName = "" Then  ' 発送先会社名が空のセルなら、
                         ' 一覧終了とみなす
    Exit For
End If

Range("A2").Select       'セルA2に発送先会社名を書き込む
Selection.Value = KaisyaName
: 以下略
128ページのEのブロックを、129ページのFGブロックと、Hブロックの間に移動することで正しく動作いたします。
大変お手数をおかけしてしまい、誠に申し訳ありません。
なおif文のブロックの移動に伴って本書の記載内容が変わることはございません(番号の振り直しなどは発生いたします)。
※上記を修正したサンプルマクロを、 ダウンロードデータ中の[chap08_最終ページ対応版]フォルダ内にご提供しています。
p.144
ヒント追加
【ヒント】最初に未記入の請求書を印刷しないようにするには
このサンプルマクロでは、マクロを単純化するために、最初に未記入の請求書が表示されます。未記入の請求書を表示しないようにするには、初回は直接変数InsatsuYNにvbNo(値は7)を代入するとよいでしょう。その場合は「InsatsuYN = MsgBox("この請求書を印刷しますか?", vbYesNoCancel)」の行を、次のように変更します。
If IchiranGyo = 2 Then   ' 最初はメッセージボックスを表示しない
    InsatsuYN = vbNo     ' MsgBox関数で[いいえ]ボタンをクリック
                         ' したと見なす
Else
    InsatsuYN = MsgBox("この請求書を印刷しますか?", vbYesNoCancel)
End If

初版1刷〜7刷まで

訂正箇所 訂正内容
p.231
下から4行目

If (Rank < 0) Or (Rank > 3) Then ' 顧客ランクが範囲外は-1をセルに返す

If (Rank < 1) Or (Rank > 3) Then ' 顧客ランクが範囲外は-1をセルに返す

※上記を修正したサンプルマクロを、ダウンロードデータ中の[chap12_20090317修正版]フォルダ内にご提供しています。

pp.234-235 正しくは以下の通りになります。

@関数の名前とパラメータ、戻り値の型を指定 → 詳しくはこの章の7を参照

A顧客IDが入力されていない場合の処理 → 参照先はなし

B[顧客ランク一覧]シートから目的のデータを探す → 詳しくはこの章の8を参照

C発見した数値や文字列を戻り値に指定  → 詳しくはこの章の7を参照

初版1刷〜8刷まで

訂正箇所 訂正内容
p.219
本文上から
5行め

Cell(1,2).Selectの結果、セルB2を選択します。

Cell(1,2).Selectの結果、セルB1を選択します。


訂正情報TOPへ