記事キャッチ画像
 既に33記事も連載していたため、索引(index)を作成しました! ( Excel for Mac 2016 相当 ) 

 1. 予告を除いても 40記事「Macユーザー向け Excel VBA 入門」記事を連載させて頂きました 
 2. 記事内で説明した イベント名 もまとめました 


  「広告」  
 



 新ブログにて、Excel2016 for Mac 以降 MacScript コマンドの代替となった AppleScriptTask コマンドの利用方法を解説しました!
 (VBAから、選択したフォルダ内の全ファイル名を 取得する AppleScript のサンプル付き)



 昨年、既に33記事も連載していたため、遅ればせながら索引(index)を作成! 

 2016年01月26日掲載分まで、「索引」作成済み。

 1. 予告を除いても 33記事、「Macユーザー向け Excel VBA 入門」記事を連載させて頂きました 

「Mac版  Excel2016  VBA 入門」記事の索引
 【2015年】
   連載 33記事  予告 1記事
 【2016年】
   連載 08記事  索引 1記事



「Mac版  Excel2019  VBA 入門」記事の索引は、こちら!
 (2021年〜 新ブログにて連載中!)



 2. 記事内で説明した イベント名 もまとめました 


【予告】「 Macユーザー向け Excel VBA 入門 」(Excel 2016 for Mac)を連載開始!
 いわゆる、Macユーザー向け「初めてのVBA」連載記事を、今晩から始めます! 
 Windows版の全機能が使えるわけではありませんが、その辺りも纏めていきたいと思っています。
 初めてのVBA 定型化作業 ユーザー定義関数

(01) Excel の「マクロの記録」で保存される内容(実はVBAコード)を確認してみよう!
 無料で標準添付の VBA を使わない手はない!
 xlsmファイル形式 開発タブ マクロ モジュール Module1 Macro1()

(02) Excel の「マクロの記録」で保存されるVBAコードを弄ってみよう!
 安全なマクロ (VBA) を含んでいる Excel ファイルのみ、「マクロを有効」に。
 マクロを有効にする Range Range〜.Select ExecuteExcel4Macro RGB関数 Rem コメント

(03) VBA 用語説明(基礎)
 VBA を学習するにあたり、最低限必要な用語を説明させて頂きます。
 VBE 戻り値を返す Function (関数)プロシージャ 戻り値を返さない Sub プロシージャ

(04) コードの説明は後にして、VBAで「カラーチャート」を作ろう!
 まずは VBA 動作確認で、 Cells オブジェクトと Range オブジェクトを操作する。
 Cells Range Interior.Color Value Callステートメント For 〜 Next 制御文でループ(繰り返し)処理を実行

(05) VBA「カラーチャート」、コードの説明!
 Cells オブジェクトと Range オブジェクトを操作
 Cells Range プロパティ Font.Color Dim 変数 Integer For 〜 Next 制御文でループ(繰り返し)処理を実行 CStr関数 文字列リテラル

(06) Excelワークシートからも呼び出せる「関数」を作成してみよう!
 引数(パラメーター)を持つプロシージャの作成
 結果を返す Function プロシージャ(関数)の作成
 Function 引数 パラメーター ユーザー定義関数 作業中のブック Public Function Long

(07) C言語みたいに、再帰関数で「階乗」を作ってみよう!
 再帰関数とは?
 再帰 再帰関数 無限ループ 条件分岐の IF If Then Else EndIf ByRef ByVal

(08) ByVal ・ ByRef 指定により結果が異なる場合(2つの例)
 文字列操作と数値操作の例、状況に応じて ByVal (値渡し) キーワードを付加!
 String MsgBox ByVal 値渡し ByRef 参照渡し ByRefがデフォルト

(09) 作成した「ユーザー定義関数」を他のブックから呼び出す方法を説明!
 個人用マクロブックの格納フォルダ、標準の XLSTART フォルダ
 ユーザー定義関数 個人用マクロブック PERSONAL.XLSB XLSTART 他ブック Application.Run

(10) Excel アドイン を利用して、ユーザー定義関数の呼び出しを簡単にする!
 Excelアドイン(.XLAM)の作成と利用登録は簡単!
 ユーザー定義関数 PERSONAL.XLSB Application.Run アドイン xlamファイル形式

(11) 条件分岐の Select Case 文(ステートメント)2種類の使い方!
 1. Select Case 変数名 〜 の形式
 2. Select Case True 〜 の形式
 ユーザー定義関数 条件分岐 Select Case Application.ThisCell Range.Offset CLng Exit Function And Or 論理式 Select Case True

(12) Do While 〜 Loop と Do Until 〜 Loop 繰り返しの使い方!
 5種類の Do 〜 Loop 「繰り返し」構造を理解する!
 Do While Until Loop 前判定 後判定 Exit Do Exit For

(13) For Each element In group コレクション処理(繰り返し)
 要素数が可変のコレクション処理で便利な、 For Each 〜 文!
 ForEach コレクション コレクション処理 繰り返し Selection Range.Row Range.Address Mod ColorIndex 配列変数 Exit For

(14) 繰り返し(ループ)処理の ネスト
 繰り返し処理のネスト(入れ子)構造と、Withステートメント
 ネスト 繰り返し 条件判断 Withステートメント Range.HorizontalAlignment Font.ColorIndex

(15) キーボード入力を受け付ける InputBox の説明!
 InputBox と 入力チェック
 InputBox For Each Do Loop Exit For IsNumeric CInt

(16) イミディエイトウィンドウは既に利用可能!
(現状、ローカルウィンドウ・ウォッチウィンドウは利用不可)

 Excel 2016 for Mac で現状利用可能なデバッグ環境と、ブレークポイントの利用方法
 デバッグ デバッガ ブレークポイント イミディエイトウィンドウ Debug.Print

(17) MsgBox関数のオプションと、「名前付き引数」の使い方!
 MsgBox関数は、どのボタンを押したか「戻り値」を持つ。
 MsgBoxのオプション MsgBoxの戻り値 MsgBox用の定数 名前付き引数 vbLf vbOK vbCritical

(18) ワークシート内にデータ入力した最終行や最終列を VBA で取得する方法!
 [command] + 矢印キー操作と、VBAで取得する方法
 最終行へのセル移動 最終列へのセル移動 [command] + 矢印キー Range.End xlDown xlUp xlToRight xlToLeft Rows.Count Columns.Count

(19) 「セル」・「行」・「列」を VBA で扱う方法の復習!
 複数セルを対象にして、値の設定や書式の設定が可能
 色の設定は、RGB() 関数、ColorIndex、VB定数 の3つの方法がある
 RGB関数 ColorIndex VB(色)定数 Font.Color Font.Bold Font.Italic

(20)  「空白セル」を判断する方法!
 数式の結果が「空白」になる場合を区別する方法も説明
 空白セル セル未入力 Range.Formula Range.Copy ActiveSheet.Paste HasFormula Copy&Paste

 以降、イベント絡みの説明となります 

(21) ワークシートのイベントプロシージャを作成し、イベントプロシージャを理解する!
 1. Excel2016 for Mac でもイベントプロシージャを間違いなく記述すれば、ちゃんと動作
 2. イベントプロシージャとは、イベントが発生した際に呼び出しされるプロシージャ
 イベントプロシージャ イベント Worksheet_BeforeDoubleClick() Option Explicit

(22) オブジェクトモジュールには「各ワークシート毎」のモジュールだけでなく、「ブック毎」のモジュールもある!
 1. 各ワークシート毎だけでなく、Excelブック毎でもイベントをトラップ可能
 2. VBAのイベントは「手動操作」だけでなく、「VBA(コード)操作」でも発生する
 Workbook_Open() Hour関数 Now関数 イベント駆動型プログラミング

(23) イベント連鎖と、Excel操作だけでなくVBAコード操作でもイベントが発生することを理解する!
 1. 一つのExcel操作で、イベントは複数発生する場合あり (イベント連鎖)
 2. VBAのイベントは「手動操作」だけでなく、「VBA(コード)操作」でも発生することを確認する
 Workbook_BeforeClose() Workbook_BeforeSave() Workbook_AfterSave() NG ActiveWorkbook.Saved ActiveWorkbook.Save Application.Quit

(24) オブジェクトが親子関係を持つ場合、子から親の順でイベントは発生する!
 1. コードの共通化と再利用の促進
 2. ダブルクリック時のイベント発生順の確認
 Worksheet_BeforeDoubleClick() Workbook_SheetBeforeDoubleClick() Callステートメント コードの複数行分割

(25) イベント発生の停止と再開をVBAで行ない、イベント発生を制御する!
 1. 四捨五入と、通貨(銀行)型丸め処理
 2. イベント発生の停止と再開を、VBAで制御する
 Worksheet_Change() Application.Intersect 〜 Is Nothing Not 〜 Is Nothing Application.EnableEvents

(26) Excelワークシートの Change と Calculate イベントの違いを理解する!
 1. 数式が再計算された場合に Calculate イベントは発生するが、対象のセルは判らない
 2. セルの数式が再計算され表示が変わっても、 Change イベントは発生しない
  Worksheet_Calculate() ActiveSheet Calculateイベントと計算方法

(27) Excelワークシートの SelectionChange 、 BeforeRightClick イベントを学習する!
 1. セルの選択範囲を変更した時(セルの移動も含む)、 SelectionChange イベントが発生
 2. 別のセルを右クリックした場合、 SelectionChange の後に BeforeRightClick イベントが発生
 Worksheet_SelectionChange() Worksheet_BeforeRightClick() Application.EnableEvents

(28) Excelワークシートの Activate 、 Deactivate イベント!
 1. ワークシート切替時に発生するイベントのため、切替元で Deactivate 後に 切替先で Activate イベントが発生
 2. SheetN モジュールの Me オブジェクトと、ActiveSheet プロパティの関係
 Worksheet_Activate() Worksheet_Deactivate() ActiveSheet ActiveCell Selection ActiveWorlbook ThisWorkbook アドインブック

(29) VBAからExcelワークシート関数を利用するには…
 1. Excel 数式リボン の 数式パレット や 関数のヘルプ を参照すれば、関数の機能だけでなく引数の型も推測可能
 2. ワークシート関数の引数の型は、「 Office デベロッパー センター 」文書も参考に!
 Worksheet_Change() IsNumeric WorksheetFunction.〜 Worksheet_SelectionChange() Double 倍精度浮動小数点型

(30) Mac版では、Excelワークシート・ブックの FollowHyperlink イベントは発生せず!
 1. Mac版の Worksheet ・ Workbook の FollowHyperlink イベントは発生せず。また、「ハイパーリンクのシート移動」は、シート移動のイベントが発生しない。
 2. Excel 「ハイパーリンク」使用方法の説明
 Worksheet_FollowHyperlink() Workbook_SheetFollowHyperlink() Object型 Hyperlink型

(31) シートが「ワークシート」か「グラフシート」かを判別する方法!
 1. TypeName 関数はオブジェクトに関する情報を「文字列」で返し、シートの Type プロパティを参照する方法もある
 2. 親子関係を持つオブジェクトの場合、子オブジェクトのイベントが発生した後で、親オブジェクトのイベントが発生
 Workbook_SheetActivate() Workbook_SheetDeactivate() Workbook_NewSheet() TypeName関数 Typeプロパティ xlWorksheet Workbook_BeforeSave() ActiveWorkbook.Sheets

(32) イベント発生順の複雑な事例を紹介!
 1. イベント発生が、予測どおりにいかない場合もある
 2. MsgBox関数 や Debug.Print ステートメントを利用して、不明点を確認する
 Workbook_Activate() Workbook_Deactivate() Workbook_WindowActivate() Workbook_WindowDeactivate() Excel.Window.WindowState xlMaximized xlMinimized xlNormal

(33) WindowResize イベントを利用して、Excelブックのウィンドウサイズ変更を禁止する!
 1. モジュール内で有効な変数を、宣言(定義)する
 2. Workbook_WindowResize イベントを利用して、ブックのウィンドウサイズを固定化
  Workbook_WindowActivate() Excel.Window.Width Excel.Window.Height Workbook_WindowResize() Application.EnableEvents 変数の有効範囲(スコープ) モジュール(レベル)変数 パブリック(レベル)変数

(34) 自分仕様の「表検索」機能を作成する!
 1. CurrentRegion が示すセル範囲とは?
 2. CurrentRegion を利用して、自分仕様の「表検索」 機能を実装する
 Worksheet_BeforeDoubleClick CurrentRegion 指定セルを含む表全体 アクティブセル領域 行方向の検索 Trim LTrim RTrim Like Like演算子 Range.Resize Range.Rows.Count Range.Columns.Count

(35) セル参照の復習と、自分仕様の「表検索2(列方向)」の作成!
 1. CurrentRegion を利用して、列方向の「表検索」 機能を実装する
 2. 「セル参照」の復習
 Worksheet_BeforeDoubleClick CurrentRegion 指定セルを含む表全体 列方向の検索 セル参照 参照セル Rangeオブジェクト Cellsプロパティ Offsetプロパティ Endプロパティ

(36) 自分仕様の「表検索3(表内の全てのセルが検索対象)」の作成!
 1. CurrentRegion を利用して、「列・行方向順の」表検索 機能を実装する
 2. VBAコードの説明
 Worksheet_BeforeDoubleClick CurrentRegion 指定セルを含む表全体 表内の全てのセルが検索対象 列・行方向順の表検索 Boolean型 Range.Address

(37) Worksheet.UsedRange と Range.CurrentRegion を理解する
 1. CurrentRegion はワークシート内に複数存在可能だが、UsedRange は一つだけ
 2. UsedRange 範囲は微妙すぎるが、少なくとも UsedRange 範囲内に全ての CurrentRegion が含まれる

 Worksheet_BeforeDoubleClick CurrentRegion UsedRange BorderAround 外枠罫線を引く

(38) Range.SpecialCells メソッドを利用して、条件を満たす全てのセルを参照する!
 1.「ジャンプ」ダイアログで [セル選択…] をクリック後、「選択オプション」ダイアログを表示
 2. 条件を満たす全てのセルが選択されるが、SpecialCells メソッドを利用して VBA でも操作可能
 条件を満たす全てのセルを選択 「ジャンプ」と「セル選択オプション」 SpecialCells xlCellTypeBlanks xlCellTypeConstants xlCellTypeLastCell CurrentRegion UsedRange

(39) VBAでも「セルに名前を定義する」ことができる!
 1. VBAでもセルやセル範囲に名前を付けたり、付けた名前を削除可能
 2. 定義した(付けた)名前は、もちろん数式内で利用可
 Range.Name Workbook.Names Namesコレクション Nameプロパティ RefersToプロパティ Space(n) 「名前を付けたセル(範囲)」は、数式内で利用可能

(40) セルの挿入・削除・結合と、セルのクリア!
 1. セルの挿入・削除・結合
 2. セルのクリア(5種類あり)
 Range.Insert Range.Delete Range.Merge Range.Clear Range.ClearContents Range.ClearFormats Range.ClearComments Range.ClearOutline Cells.Clear

(41) セル内容のコピーと貼り付け!
 1. セルの コピー 、 移動 、 貼り付け
 2. 形式を選択して、貼り付け
 Range.Copy Range.Cut Range.Select Worksheet.Paste CutCopyMode Range.PasteSpecial SkipBlanks 空白セルを無視 Transpose 行列を入れ替え




最後まで読んでいただき、ありがとうございます。
ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル

  「広告」