YUKIBEのBLOG

日常のメモ書き

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

  • 表示 / 非表示

ブック

Excel:VBA:ブック - YUKIBEのBLOG

シート

  • 開いているシート
  • 表示 / 非表示

セル(Range)

  • 指定 単一 / 範囲 / 離れた行
  • 表示 / 非表示

VBA 行を選択する

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

フォルダ

【 参考 】

FileSystemObject

Excel:関数:一覧

参考

dekiru.net

数学/三角関数

数値の集計

SUM/SUMIF/SUMIFS/SUBTOTAL/AGGRIGATE

日付/時刻関数

日付/時刻関数

統計関数

文字列操作関数

論理関数

検索/行列関数

Web関数

データベース関数

財務関数

エンジニアリング関数

情報関数

キューブ関数

関数の基礎知識