【完了】ExcelVBA自動化のすべて
1周目が終わりました。
すごく良い本だった気がする。なんか、少しだけ、実務用のマクロが分かった気がする。
なんとなくの理解ができたと思います。いきなり作れと言われると厳しいので少ししたら2周目をやろうと思います。2周目は自分で作れるようになることを目標に、手を動かす。コードを書いて業務で使えるように汎用性をもたせられたら良いと思います。
とりあえず、本を読みながらであればできそうなことをまとめてみます。
Chapter-1
・文法等、基本的なことのまとめだったので、自分用メモ。
・Excelの表データの配列①変数名の横に()は不要②variant型
・Ubound:要素の最大数。引数1.配列の名前 引数2.行は「1」、列は「2」
・CLng:数値型に型変換、CStr:文字列型に型変換、CDate:日付型に型変換
Chapter-2
・Match(値、探す範囲、型(以上、一致、以下))
Chapter-3
・IsNumeric(値):数値の確認、True or False
・スペース削除①Trim両端のみ削除(全角、半角両方削除)②Replaceすべてのスペース削除(全角、半角区別あり)
・エクセルデータは配列に入れて、処理後に貼り付けが高速。
・Rangeの範囲指定する始点、終点セルも変数に入れる。
・Forループ構文の最後をUboundに設定
・空白セルがある行を別シートへコピーする。countBlank関数:空白セルの個数を返す。
・名簿の名寄せ:元データを変数に格納、下から上へループを回す。比較データと比較。一致したら、処理を行うIf文。
Chapter-4
・AutoFilterのかけ方。
・シートの重複チェック:ifシート名が同じ→Application.DisplayAlert=false→Sheet.Delete→Application.DisplayAlert=true
・配列から行(列)全体の値を取得する。
worksheetFunction.Index(配列,行番号)、worksheetFunction.Index(配列,Empty,列番号)
Chapter-5
・フィルターをかけた状態で、見えているデータを集計したい。
Subtotal(集計方法,集計対象範囲) 集計方法:平均=1、個数=3、最大値=4、最小値=5、合計=9
・weekday:曜日を番号で取得 Weekday(#2023/11/1#,vbMonday) weekday(日付,週の最初の曜日番号)
・データの転記は転記元と転記先の対応表を作成。個別処理が必要な項目を確認する列を作る。分岐で処理。運用時に保守性が高くなる。
Chapter-6
・VarType(値):値の型を取得
・DateDiff:時間間隔を指定した単位で換算 DateDiff(単位,1つ目日時,2つめ日時)
・DateAdd:時間を加算 DateAdd(単位,時間間隔,日付)
Chapter-7
・ExportAsFixedFormat (type,Filename):PDFファイル出力
・ADODB.Streamオブジェクト:テキストファイル操作。Excelシートからcsvファイルを作成する。
FileSystemObject:ファイルやフォルダの操作を行う。
Chapter-8
・対応シートを作成して、シートごとのばらつきに対応する。
・Dir関数:①ファイル・フォルダの存在確認②フォルダ内のファイルの一覧を取得
Do Until Dir(フォルダパス & "*" & 拡張子)= "" ファイルがなくなるまで繰り返し
・画像の挿入:AddPicture 引数
・Application.GetOpenFiltername 引数:ユーザにファイルを選択させる
Chapter-9
・outlook・word・powerpointオブジェクトはCreateObject関数を使って作成
・スクレイピングはやらなくてもよいかなー