本文へスキップ

簡単!!エクセルVBAメモ

2.VBAの基本(構文など) 【その他 ※コマンドなど】

以下コマンドについて記載してます。
 @最終行の取得方法
 Aセルの値クリア ※初期化関連
 Bシートの追加
 Cエラー処理
 Dセルに色を塗る
 E検索(FIND)
 


@最終行の取得方法


 最終行取得1 ※上からみて、最終行を取得
 cnt = Range("A1").End(xlDown).Row

 最終行取得2 ※下からみて、最終行を取得 ※2003以前も対応できるように、以下は6万行の位置から上へ見て取得
 cnt = Range("A65536").End(xlUp).Row



Aセルの値クリア ※初期化関連

 (1)基本
  Workbooks("ブック名").Worksheets("シート名").Range("セル範囲").Clear

 (2)全セルクリア(cells.selectは全選択)
  Cells.Select
  Selection.ClearContents

 (3)列クリア
  Columns("A:D").Select
  Selection.ClearContents

 (4)行クリア
  Rows("1:19").Select
  Selection.ClearContents


Bシートの追加


 (1)ブックの追加
  Workbooks.Add '現在選択しているシートの前に追加

 (2)シートの追加
  Worksheets.Add '現在選択しているシートの前に追加
  ActiveSheet.Name = "追加シート" '名前を変える

 (3)ブックの保存(上書き)
  ActiveWorkbook.Save

 (4)ブックの保存(名前をつけて)
  ActiveWorkbook.SaveAs Filename:="C:\Users\h_fukumura\Desktop\ローカル\test.xlsx"


Cエラー処理

 
 エラー時の遷移先
  On Error GoTo 【行ラベル】

 エラーでも継続する 
  On Error Resume Next

 エラーでも継続するけど、エラーを判定する例(ファイルに開くのに成功したか??)
  On Error Resume Next '※エラーがある場合は次のファイルを開く
  Workbooks.Open fullpath, ReadOnly:=True, UpdateLinks:=0
  If Err.Number <> 0 Then
   GoTo 999 'ファイルオープンでエラー有り
  End If


Dセルに色を塗る


 色を塗る(コマンドで覚えるより、マクロの記録で、
 好きな色をセルに塗ってみるのが早くてよい(以下をコピーでもOK)


 (1)セルを選んで、赤
  Range("F25").Select
  With Selection.Interior
  .Pattern = xlSolid
  .PatternColorIndex = xlAutomatic
  .Color = 255
  .TintAndShade = 0
  .PatternTintAndShade = 0
  End With

 (2)セルを選んで、黄色
  Range("F27").Select
  With Selection.Interior
  .Pattern = xlSolid
  .PatternColorIndex = xlAutomatic
  .Color = 65535
  .TintAndShade = 0
  .PatternTintAndShade = 0
  End With

 (3)セルを選んで、水色っぽい色
  Range("F29").Select
  With Selection.Interior
  .Pattern = xlSolid
  .PatternColorIndex = xlAutomatic
  .ThemeColor = xlThemeColorAccent5
  .TintAndShade = 0.799981688894314
  .PatternTintAndShade = 0
  End With

E検索(FIND)


 エクセル内を検索する ※以下はアクティブのシートに対して検索する。

 (1)A1から「検索ワード」を、アクティブのシートに対して実行
  Set 検索結果 = Range("A1").CurrentRegion.Find(What:="検索ワードあああ")

 (2)取得できたか確認
  If 検索結果 Is Nothing Then
    MsgBox "検索に失敗しました"
  Else
 (3)検索されたときのセル情報を取得(一応表示してみる)
    wk = 検索結果.Address
    MsgBox Range(wk)
  End If



 【※その他【構文中級】ページへ】
  @繰り返し処理@(For〜Next)
  A繰り返し処理A(Do〜Loop)
  B条件分岐(If)
  C条件分岐(Select Case)
  DメッセージBOX、インプットBOX(msgbox、inputbox)
  Eブック、シート、セルの指定
  Fコピー、カット、貼り付け(Copy、Cut、Paste)


  トップページへ戻る