Excel:VBA:セル(Range):特別なセル(空白etc)
空白セル
Sub testRng_空白セル() On Error GoTo ErrHandl Selection.SpecialCells(xlCellTypeBlanks) = "GG" Exit Sub ErrHandl: If Err.Number = 1004 Then ' Err.Clear End If End Sub Public Function getRng_空白セル(rng As Range) As Range Set getRng_空白セル = rng.SpecialCells(xlCellTypeBlanks) End Function Sub testRng_数式セル() Dim rng As Range Set rng = Cells.SpecialCells(xlCellTypeFormulas) Dim vFE For Each vFE In rng Debug.Print vFE.Formula, vFE.Address Next vFE End Sub
Excel:操作:TOP
アカウント
オプション
全般
数式
データ
文章校正
保存
言語
アクセシビリティ
詳細設定
リボンのユーザー設定
クイックアクセスツールバー
アドイン
トラストセンター
メニュー
ファイル
新規
開く
上書き保存
名前を付けて保存
印刷
閉じる
ホーム
クリップボード
フォント
配置
数値
スタイル
セル
編集
分析
挿入
テーブル
図
アドイン
グラフ
ツアー
スパークライン
フィルター
リンク
コメント
テキスト
記号と特殊文字
描画
ページレイアウト
テーマ
ページ設定
拡大縮小
シートのオプション
配置
数式
関数ライブラリ
定義された名前
ワークシート分析
計算方法
データ
データの取得と変換
クエリと接続
データの種類
並べ替えとフィルター
データツール
予測
アウトライン
校閲
文章校正
アクセシビリティ
インサイト
言語
コメント
メモ
保護
インク
表示
シートビュー
ブックの表示
表示
ズーム
ウィンドウ
マクロ
開発
コード
アドイン
コントロール
XML
アドイン
Excel:VBA
App
- 表示 / 非表示
ブック
- 開いているブック - YUKIBEのBLOG
- OPEN / CLOSE
- 表示 / 非表示
シート
- 開いているシート
- 表示 / 非表示
セル(Range)
行
- 指定 単一 / 範囲 / 離れた行
- 表示 / 非表示
Sub Row__Sample() '行番号で選択 Rows(2).Select 'セル名で選択 Range("B5").EntireRow.Select '行の範囲を選択 ' 2 ~ 3 行目を選択 Range("2:3").Select Range("2:2", "3:3").Select Range(Rows(2), Rows(3)).Select 'セルの範囲の行を選択 Dim r As Range Set r = Range("A2:A3").EntireRow ' A2 ~ A3 の行 r.Select '離れた行を選択 Range("1:1, 3:4").Select '1,3,6行 Set r = Union(Range("1:1"), Range("3:4")) Set r = Union(r, Range("6:6")) ' 1 行目と 3 ~ 4 行目 と 6 行目 r.Select Set r = Union(Range("A2"), Range("B5")) Set r = Union(r, Range("B8")) r.EntireRow.Select 'Rowsは、文字・数値どちらでも可 Set r = Union(Rows("1"), Rows(3)) Set r = Union(r, Rows("7")) r.EntireRow.Select End Sub
列
- 指定 単一 / 範囲 / 離れた列
- 表示 / 非表示
Sub Col__Sample() '列番号か列名で選択 Columns(1).Select ' A 列 Columns("A").Select ' A 列 Columns(3).Select ' C 列 'セル名で選択 Range("A2").EntireColumn.Select '行の範囲を選択 ' B ~ C 列目を選択 Range("B:C").Select Range("B:B", "C:C").Select Range(Columns(2), Columns(3)).Select 'セルの範囲の列を選択 Dim r As Range Set r = Range("B1:C1").EntireColumn ' B1 ~ C1 の列 r.Select '離れた列を選択 Range("A:A, C:D").Select Range("A:A, C:C, E:F").Select '1,3,6行 ' Dim r As Range Set r = Union(Range("A:A"), Range("C:D")) ' A 列と C ~ D 列 Set r = Union(r, Range("F:F")) ' A 列と C ~ D 列と F 列 r.Select Set r = Union(Range("A2"), Range("B5")) Set r = Union(r, Range("B8")) r.EntireColumn.Select 'Columnsは、数値のみ Set r = Union(Columns(1), Columns(3)) Set r = Union(r, Columns("F")) r.EntireColumn.Select End Sub
セル(Range)
Excel:VBA:セル(Range) - YUKIBEのBLOG
ListObject
Excel:VBA:ListObject - YUKIBEのBLOG
オートフィルタ
VBE
Excel VBA Excel VBAショートカットキー一覧
プロシージャリスト
VBAコードの全プロシージャー・プロパティ一覧を取得|VBAサンプル集
プロシージャ一覧を作成するマクロ :エクセルマクロ・Excel VBAの使い方/マクロのサンプル
【ExcelVBA】VBAコードの情報や概要をシートに一覧出力する - Qiita
その他
高速化
マクロVBAの高速化・速度対策の具体的手順と検証|VBA技術解説
その他
Excel:VBA:その他 - YUKIBEのBLOG
・PERSONAL.XLSB
"C:\Users\xxxx\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB"
重複
削除(指定列の重複行の削除(HDRあり))
Worksheets("sample").Range("A1").CurrentRegion.RemoveDuplicates Columns:=2, Header:=xlYes
VBA:FSO
ファイル
存在確認
'** '* 【 File 】 '* 存在確認:FileExists '* '* Function FileExists(FileSpec As String) As Boolean '* '* @param {} '* @param_ref {} '* @return {} '* '* @note '* Public Function FileExists(FileSpec As String) As Boolean Dim bRes As Boolean Dim FSO As FileSystemObject Set FSO = New FileSystemObject bRes = FSO.FileExists(FileSpec) Set FSO = Nothing FileExists = bRes End Function
移動
削除
'** '* 【File】 '* 削除:DeleteFile '* '* Sub DeleteFile( '* FileSpec As String, '* [Force As Boolean = False] '* ) '* '* @arg {str} 削除するファイル名 '* パスの最終にワイルドカード使用可 '* @arg_opy {bln} True:読取専用も削除 '* @arg_ref {} '* @ret {} '* '* @note '* 存在しないファイル名を指定するとエラー '* Public Sub DeleteFile( _ sFileSpec As String, _ Optional bForce As Boolean = False _ ) Dim FSO As FileSystemObject Set FSO = New FileSystemObject Call FSO.DeleteFile(sFileSpec, bForce) Set FSO = Nothing End Sub
ファイル名 取得
'** '* 【 File 】 '* ファイル名を返す:GetFileName '* '* Function GetFileName(Path As String) As String '* '* @param {} '* @param_ref {} '* @return {} '* '* @note '* Public Function GetFileName(Path As String) As String Dim sRes As String Dim FSO As FileSystemObject Set FSO = New FileSystemObject sRes = FSO.GetFileName(Path) Set FSO = Nothing GetFileName = sRes End Function
ファイル名(拡張子なし) 取得
拡張子 取得
コピー
'** '* 【 File 】 '* コピー:CopyFile '* '* Sub CopyFile( '* Source As String, '* Destination As String, '* [OverWriteFiles As Boolean = True] '* ) '* '* @param {} '* @param_ref {} '* @return {} '* '* @note '* ワイルドカード使用可 '* Public Sub CopyFile( _ sSource As String, _ sDestination As String, _ Optional bOverWriteFiles As Boolean = True _ ) Dim FSO As FileSystemObject Set FSO = New FileSystemObject Call FSO.CopyFile( _ sSource, _ sDestination, _ bOverWriteFiles _ ) Set FSO = Nothing End Sub