Excel 2000 VBA実践プログラミング





Excel 2000 VBA実践プログラミング 初版
1999年 7月 21日
発行:秀和システム
定価:\2,400(税別)
ISBN:4-87966-917-2
こちらからAmazon.co.jpで注文できます
・ガレージセールでは販売していません
このページの下に、サポート情報があります
サンプルデータのダウンロードができます

あなたはExcelのVBAで、右ボタンのショートカットメニューに新しいマクロを登録できますか?表示中に大きさを変更できるUserFormを作れますか?作業の進捗状況を示すプログレスバーを表示できますか?エクスプローラのような可動セパレータを作成できますか?参照設定しないで他ブックのマクロを実行できますか?マクロを使ってVBAのソースコードを書き換えられますか?
この本を読めば、すべて楽勝でできるようになります。Excel VBAのポテンシャルは、あなたが考えているよりはるかに高いのです。「できない」のはあなたが知らないだけです。決してExcel VBAが「できない」のではありません。この本は、あなたにスキルを提供します。
なお、タイトルはExcel 2000となっていますが、ほとんどのテクニックはExcel 97やExcel 2002/2003でも正常に動作します。買って損はありません。

目次
第1章 ファイル操作
第2章 シート操作
第3章 セル操作
第4章 メニュー操作
第5章 ユーザーフォーム操作
第6章 オブジェクト操作
第7章 その他の実践プログラミング

サポート情報
15ページ:本文中の、
編集しているブックが、まだ1度も保存されたことのない新規ブックの場合は、必ず「名前を付けて保存」を実行しなければなりません。
という記述は、新規ブックに対して[ファイル]-[上書き保存]を実行しても自動的に[名前を付けて保存]ダイアログ ボックスが表示されるという意味です。新規ブックに対してSaveメソッドを実行することは可能です。その場合、BOOK1などのデフォルト名でカレントフォルダに保存されます。
・152ページ:任意のセルにコメントが設定されているかどうかを、Commentの参照時に発生するエラーで判定していますが、次の方法で判定することもできます。

Sub test()
    Dim buf As Variant
    Set buf = Range("A1").Comment
    If TypeName(buf) = "Comment" Then
        MsgBox "A1にはコメントがあります"
    Else
        MsgBox "A1にはコメントがありません"
    End If
End Sub

バリアント型またはオブジェクト型で宣言した変数bufに、セルのCommentオブジェクトを代入します。変数bufをTypeName関数で調べて「Comment」が返れば、そのセルにコメントが挿入されています。セルにコメントが挿入されていない場合、TypeName関数の返り値は「Nothing」になります。
・153ページ:少しややこしい話です。興味のない方は読み飛ばしてください。
本文では、「コメントは、コメントの実体であるShapeオブジェクトと、自分にはどのShapeオブジェクトが関連づけられているかというセルの情報で構成されています」と解説しています。そこで、任意のセルに設定されているコメントの「コメント枠」を取得するために、ActiveSheet.Shapes(.Shape.Name)とシートに存在するShapesコレクションからコメント枠を特定しています。しかし、CommentオブジェクトのShapeプロパティは、コメント枠を表すShapeオブジェクトを直接返すので、このShapeプロパティを使う方がスマートです。このテクニックは、本書執筆後に知りました。したがって、155ページのリストSample03_68は次のように書けます。

Sub Sample03_68()
    With Range("D4").AddComment
        With .Shape.TextFrame
            .Characters.Text = "コメントは爆発だ!"
            .Characters.Font.Bold = True
            .Characters.Font.ColorIndex = 2
        End With
        .Shape.Fill.PresetGradient 1, 1, 1
        .Shape.AutoShapeType = msoShapeExplosion1
    End With
End Sub

・129ページ:引数LookAtの解説に、省略するとxlPartが指定されたものとして…とありますが、 LookIn、LookAt、SearchOrder、MatchCase、MatchByteは、引数を省略すると、直前に実行したFindメソッドの引数または、 [検索]ダイアログボックスで最後に設定した状態を指定したものとして実行されます。
・55ページ:本文中の「クラス名」は、正しくは「オブジェクト名」です。
・244ページ:矢印の始点と終点を表す座標を解説した一番下の図は適切ではありません。図のXとYは、直線を引くAddLineメソッドの引数と、次のように対応します。
X1 → BeginY
X2 → EndY
Y1 → BeginX
Y1 → EndX

サンプルファイル
本書で解説しているマクロのコードです。
vbasample.lzhをダウンロード後、同梱されている「お読みください.txt」をご覧ください。
サンプルファイルのダウンロード「vbasample.lzh (260,049 Byte)」


[目次]に戻る