プログラミングのメモ

プログラミングの学び直し備忘録

ExcelVBA:TOP2

基礎

ショートカット

設定項目 内容
VBE起動 [Alt]+[F11]
クイックヒント [Ctrl]+[I]
パブリックプロシージャ呼び出し [Alt]+[F8]
ジャンプ [Ctrl]+[G]

主なオブジェクト

  • ワークブック
  • ワークシート
  • セル(Range):Range
  • フォント:Fonf
  • オブジェクトの内部:Interior
  • 並び替え:
  • フィルタ:Filter

セル、行、列 選択方法

VBA:Excel :Range - プログラミングのメモ
  • 単一セルRange
  • 範囲
  • 離れた位置
  • 範囲のEdgeセル(左上、右上、左下、右下)

  • Range
  • Cells
  • Rows / Colmns
  • EntireRow / EntireColmn

Like演算子

記号 説明・使用例 結果
0以上の任意の文字列
"abcd" Like "a*"
True
? 任意の1文字
"abcd" Like "a???"
True
# 任意の1数字
"abcd" Like "a#"
False
[] []内の1文字
"abcd" Like "[xyz]"
False
[!] []内に指定した文字以外の1文字
"abcd" Like "[!xyz]"
True
[-] []内に指定した範囲の1文字"abcd
" Like "[a-c]"
True

Is演算子

rng Is Range("A1")    '' A1を参照しているか
rng Is Nothing          '' オブジェクトを参照しているか

配列

VBA:Excel :配列 - プログラミングのメモ

コレクション

VBA:Excel :コレクション - プログラミングのメモ

Dictionary

VBA:Excel :辞書 - プログラミングのメモ

Application

VBA:Excel :App - プログラミングのメモ
  • 画面更新
  • ファイルを開く [ファイル]-[開く]-[参照]
  • R1C1参照形式[ファイル]-[オプション]-[数式]-[数式の処理][R1C1参照形式]
  • 計算方法の設定[ファイル]-[オプション]-[数式]-[計算方法の設定]

ブック

VBA:Excel :ブック - プログラミングのメモ
  • ブックを開く
  • ブックを閉じる
  • ブック OPEN確認
  • ブック開く ダイアログ
  • 他のブックのプロシージャ呼び出し
  • 名前を付けて保存 (xlsm --> xlsx)
  • リファレンス

シート

Range

VBA:Excel :Range - プログラミングのメモ
  • Range設定
  • 範囲取得
  • 最終行/列
  • 開始行/列
  • セル(行頭先頭/行頭最後/行末先頭/行末最後

FSO

VBA:Excel :FSO - プログラミングのメモ

操作VBA

【ホーム】メニュー

Excel:ホームタブ - プログラミングのメモ
Excel用語集(リボン「ホーム」タブ編) | Excelを制する者は人生を制す
GRP
編集重複の削除検査と選択条件を選択してジャンプオブジェクトWS.DrawingObjects
数式:数値RNG.SpecialCells(xlCellTypeFormulas, 1).Select
数式:文字="a" & "B"RNG.SpecialCells(xlCellTypeFormulas, 2).Select
数式:論理値=ISNUMBER(E14)RNG.SpecialCells(xlCellTypeFormulas, 4).Select
数式:エラー値式結果 #REF!RNG.SpecialCells(xlCellTypeFormulas, 16).Select
数式:すべてRNG.SpecialCells(xlCellTypeFormulas, 23).Select

ジャンプの選択オプション(SpecialCells)|VBA入門

【挿入】メニュー

Excel用語集(リボン「挿入」タブ編) | Excelを制する者は人生を制す

【ファイル】メニュー

VBA:Excel :App - プログラミングのメモ
【ファイル】メニュー
開く 参照
オプション 数式数式の処理R1C1参照形式
オプション 数式計算方法の設定

【データ】メニュー

GRP
データツール重複の削除rng.RemoveDuplicates

重複削除

メニュー[データ]-データツールGRP[重複削除]

その他

シートの全てのオートシェイプ、ピクチャなどの描画レイヤのオブジェクト名を取得する

ワークシートに挿入した図形や画像を一括削除
シートの全てのオートシェイプ、ピクチャなどの描画レイヤのオブジェクト名を取得する

検索

VBA:Excel :検索(アドレス) - プログラミングのメモ
  • 『シート全体』指定文字列のアドレス検索
  • 『指定範囲(Range)』指定文字列のアドレス検索
  • 『指定行』指定文字列のアドレス検索
  • 『指定行(1行)』指定文字列のアドレス検索
  • 『指定列』指定文字列のアドレス検索
  • 『指定列(1列)』指定文字列のアドレス検索
  • 文字列を検索して、指定アドレスを返す。(Collection)

VBA:Excel :検索(行番号) - プログラミングのメモ

  • 指定文字列の行番号取得
    • 『シート全体』指定文字列の行番号取得
    • 『範囲指定(Range)』指定文字列の行番号取得
    • 『指定行範囲』指定文字列の行番号取得
  • 重複削除

VBA:Excel :検索(重複/重複でない セルをRangeで取得) - プログラミングのメモ

オブジェクトの選択1つ選択して[Ctrl][A]rng.Shapesコレクション

Access連携

01

VBA:Excel :ACCESS DB - プログラミングのメモ
  • データベースを作成する(ADOX)
  • テーブルの作成・削除/フィールドの作成・削除(ADOX)

02

VBA:Excel :ADO:Access - プログラミングのメモ
  • DB Class化
    • プロパティ
    • DB作成
    • TB作成
    • TB削除
    • TB存在確認
    • INSERT
    • Collection(Collection((Array))
    • JOIN(FULL)
  • 接続文字列
  • DB接続
  • 選択
    • 『SELECT』ByRef collect(FLD_NAME, Value)
    • 『SELECT』テーブルの全データをシートに出力
    • 『SELECT』フィールド指定:データをシートに出力
    • 『WHERE』条件データをシートに出力
    • 『LIKE』パタンマッチデータをシートに出力
    • SELECT * FROM TB

Tips

配列:範囲(Range)の重複削除、結果取得・出力(Excelシート)

VBA:Excel :Tips:範囲(Range)の重複削除、結果取得・出力(Excelシート) - プログラミングのメモ
  • 配列の配列
  • 配列の配列 → 2次元配列
  • 配列をセルに出力
  • Excelシート 重複削除
  • セルの値を2次元配列に取得
  • 2次元配列をセルに出力

正規表現

VBA:Excel :Tips:正規表現 - プログラミングのメモ

参考

  • Excelマクロ&VBA[実践ビジネス入門講座]