【これが知りたかった! Excelマクロ&VBAテクニック】

(1)本の内容の紹介(著者が書いた本の宣伝です)
【1】本の内容-1<初級者向けのメッセージ> (2012/12/05)
 Amazonの商品の説明を見ると、「Excelマクロ&VBA歴15年の著者がまとめたとっておきのテクニック」。
となっています。この説明で本の内容を理解するは難しいと思うので、著者として本の説明(宣伝)を
初級者向けのメッセージとして「著者からのお知らせ」に記載しました。

 入門編・基礎編を読み終えると、一通りExcelVBAは理解できマクロを組めるようになります。しかし、
入門編は何か1つ実行する場合、もっとも覚えやすそうな簡単な基礎的な使用例の説明が一般的です。
 入門書をマスターしても、もっと別な方法や別のコマンドを使用した効率のよいマクロを組めないか等を
考えてしまいます。著者の経験ではExcelVBAを覚え始めの頃は、新しい事柄を吸収したい向上心に溢
れていました。したがって色々な本を購入して読んだが、中には高額の本でも自分の知らなかった新しい
事柄の記述が1行もなくガッカリした経験もありました。

 本書は向上心に溢れる初心者が読んだ場合、新しく吸収できる記述が沢山あります。以下が1部の例です。
------------------------------------------------------------------------
「変数について」では、一般的な入門書では下記の説明が不足または無いようです。
◆値の受け渡しについて→ モジュール間のデータ、引数で値を受る、Functionプロシージャで処理したデータ
◆型宣言文字でデータ型は指定→ myabc%の%は整数型 (Integer)、myabc$の$文字列型 (String)、他は表5参照
◆データ型指定を途中で変更→ Cells(i, 1) .Value = CStr(myabc)のCStrは文字型に変換、他は表7参照
◆文字変数を制御のサンプル→ Len、Left、Right、Mid、InStr、Str、Val、LCase、UCase、Like、、StrComp、
LTrim、StrConv、Space、String、LSet、RSet ・・・・本書はこれらのコマンドの31件の使用例記述
------------------------------------------------------------------------
「ファイル制御について」では、一般的な入門書ではファイルを・開く・保存・閉じる程度で簡単に済ませ、下記
のような色々なコマンドがありますが、説明が不足または使用例が無いようです。
◆ファイルを制御のサンプル→ Name、Caption、FullName、DefaultFilePath、Path、CurDir、ChDrive、ChDir、
  MkDir、RmDir、Dir、FileDateTime、FileLen、SetAttr、GetAttr、FileCopy、Name、Kill、Open Filenamen 
  GetOpenFilename、SaveAs、FileFormat、Close、Save 、.Quit、Add、Activate、・・・・・
  本書はこれらのコマンドの42件の使用例記述
------------------------------------------------------------------------
以上、2件紹介しましたが、他にも覚えると便利なテクニック満載であり、キット満足すると思います。

***************************************************************************************
【2】本の内容-2<中級者向けのメッセージ> (2012/12/08)
中級・上級者になればExcelVBAでマクロを作ろうとした場合、どんな時どんなるプロパティ・メソッド・関数など
を使用すればよいか頭に浮かびます。ただし膨大な量のスペルや構文については正確に覚えることができな
いので、普通過去に作成した同じようなマクロを使用したり、参考資料を見ます。著者が数年間に渡り見やすく
まとめた参考資料は自分が使用する場合、ヘルプを見るより効率よくマクロを短時間で作成できます。

効率よくマクロ組むための便利資料は、中級以上の方にはマクロ作成の手助けになると思います。
以下が見やすくまとめた参考資料の一部の例です。
◆ファイルを制御するコマンド42件の使用例一覧表
◆ワークシートを制御するコマンド32件の使用例一覧表
◆A1形式の列を数字に変更(256→IV列までの対照一覧表)
◆VBAで利用できるデータ型・範囲・サイズの一覧表
◆文字変数(又はセル記入文字)を制御するコマンド31件の使用例一覧表
◆Format関数で処理できる18件の日付関連書式記号一覧表
◆56色のカラーコード一覧表
・・・・・・・・ など・・など・・・・・
------------------------------------------------------------------------
大容量のデータをExcelVBAで処理する場合時間がかかることがあります。
本書では著者が経験した「高速化マクロ作成テクニック」を紹介してあります。
◆マクロ実行中の画面の動き停止(画面表示更新ストップ以外に、アイコン化、Excel非表示など)
◆自動記録の無駄部分の削除(通常「SelectとSelection」または「SelectとActiveCell」を削除で問題なし)
◆変数の有効活用で高速化(セルデータを2次元配列を使用して一括移動例など)
◆ワークシート関数使用で高速化
◆$付き文字型関数を使用で高速化(文字型関数Mid$の使用例など)
◆CSVファイルを高速で取り込む方法(ファイルを開かないで取り込む方法は、txtファイルでも同じ方法で可)
◆その他の高速化マクロ作成例
 ●Withステ−トメントの使用
 ●余分な再計算をおこなわない
------------------------------------------------------------------------
以上、2件紹介しましたが、マクロ作成時に使用できる便利資料満載であり、キット満足すると思います。

***************************************************************************************
【3】本の内容-3<上級者向けのメッセージ>
インターネットWebページをExcelVBAで処理・操作できれば、Excelの活用範囲が広がります。
ExcelVBAでWeb操作のマクロその物は、初級・中級者でも簡単に組むとこができますが、本格的にWebページ
を操作する場合は、HTMLタグや、JavaScript、スタイルシートの知識も多少必要であり、上級者向けとしました。

以下が本書で紹介しているインターネットWebページを操作するテクニックの目次です。
◆4-1 Excelシート上に別IE表示ウィンドウを開きWebページを表示する
◆4-2 HTMLタグのフォームエレメントを制御するテクニック
◆4-3 Webページに表示されているデータを取得する方法
◆4-4 HTMLソースのみ取得は HTTPオブジェクト使用が効率が良い
◆4-5UserFormへWebBrowser設定でWebページの処理が容易にできる
◆4-6 Webページを表示または処理する各種テクニック例
◆4-7 Webページ操作に直ぐ利用できるサンプルマクロ例(下記他+4点)
 ●Webページのリンク表を一段ずつ自動クリックするマクロ ⇒ イメージサンプル
 ●株売買の自動発注ロボットをExcelVBAで作成したマクロ ⇒ イメージサンプル
 ●郵便番号を住所に変換をWebページを利用して実行するマクロ ⇒ イメージサンプル

------------------------------------------------------------------------
以上紹介のサンプルは、著者が確認した限りWindowsVista/Windows7、IE8で安定して動きます。
過去のWindowsXP、IE6では、Set objIE = CreateObject("InternetExplorer.Application")でCreateObject関数で
ActiveX オブジェクト参照設定し変数objIEへ代入(何故か何方のサンプルを見ても変数名をobjIEにいる)すれば、
その変数objIEを操作することにより簡単にWebページの処理ができました。

しかし、IE7以降は通常の「エクスプローラー」又は「IE7」が1個でも開いている場合は、その開いているウインドウ
の中に新しいタブが作成され、そこへ指定したHTMLファイルが表示されます。1個も開いていない場合は新しい
ウィンドウが開き、そこへ指定したWebページが表示されます。

本書では「エクスプローラー」or「Internet Explorer 7」が開いているいないに関係なく、
Shell ("EXPLORER.EXE " & fff)[変数fffはWebページアドレス]、←【これって特許か実用新案になるかな??】
で強制的にWebページを表示する方式であり、Win7・IE8でも安定に動作します。
なお、Web表示後は、”Set objIE=”で参照を変数に格納でIE6以前に作ったマクロはそのまま使用できます。



【ホーム】