【完全自分用】ExcelVBAのチート(カンニング)シート

以下全部自分用につくりました。

頭ではわかってるのになんか出てこない。
これよくあるのでまとめました。

スポンサーリンク

設定編

Excel高速化のためにやるやつ

お決まりの高速化に使うやつ。

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .DisplayAlerts = False
        .Calculation = Excel.XlCalculation.xlCalculationManual
    End With

もろもろオフにして

  With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .DisplayAlerts = True
        .Calculation = Excel.XlCalculation.xlCalculationAutomatic
   End With

オンに戻す。

個人的には最後にこれはつけます。
なぜかというと、全部オフ→オンに行く前にエラー→だるい
となるので最後がおすすめです。(というか配列使えばなくてもいい)

確認メッセージを消す&シートの追加と削除

シートやブックを消すときに出る確認ポップ。
あれのせいで作業が止まってしまうことありますよね。
Application.DisplayAlertsで制御できます。

Application.DisplayAlerts = False
    
    Worksheets.Add.Name = "test"
    ActiveSheet.Delete
    
Application.DisplayAlerts = True

ユーザー定義型変数の宣言

何気便利なユーザー定義型。

Type ex
    namae As String
    nenrei As Long
End Type

Sub test()
    Dim a() As ex
    c(1).namae = "azeti"
    c(1).nenrei = 30
End Sub

連想配列

リンゴは赤いみたいな感じの連想配列。
便利です。

Dim dic as Object
Set dic = CreateObject("Scripting.Dictionary")
Set dic = Nothing

配列の大きさをかえる

どれくらいの大きさが必要かわからないときに便利。

Dim a
Dim i as Long

ReDim Preserve a(i)

エラー時の処理

On Error Resume Next
On Error GoTo 0

インプットボックス

 Dim buf
buf = InputBox("入力して")
MsgBox buf

buf = InputBox(Prompt:="入力してみて", HelpFile:="", Context:=2)
MsgBox buf
0数式
1数値
2文字
4True/False
8Rangeオブジェクト
16エラー値
64数値配列

フォルダパスを取得

 Dim folderPath As String   
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = True Then
        folderPath = .SelectedItems(1)
        End If
    End With

ワードを開く

 Dim wdApp As Object
 Set wdApp = CreateObject("Word.Application")
 wdApp.Visible = True

ユーザー定義型は定義されていませんとエラーが出た場合は、ツール→参照設定から「Microsoft Word ○○.〇 Object Library」にチェックを入れましょう。
〇はバージョン名です。

Microsoft XX.X Object Libraryと勘違いしがちですが、Wordと入ってるやつにチェックしてください。

スポンサーリンク

セル操作

書式変更

Range.NumberFormatLocal = "@" '文字列
Range.NumberFormatLocal = "yyyy/mm/dd" '日付、月、日

色変更

Range("A1").Interior.Color = vbRed '赤
vbBlack
vbRed
vbGreen
vbYellow
vbBlue
vbWhite

罫線、網掛け

Sheets("Sheet1").Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous

最終行、最終列を取得

Dim Maxcol
Dim Maxrow

'最終列
 Maxcol = Cells(1, Columns.Count).End(xlToLeft).Column
'最終行
 Maxrow = Cells(Rows.Count, 1).End(xlUp).Row

コピペ

Sheets("Sheet1").Range("A1").Copy Destination:=Sheets("Sheet2").Range("A1")

演算子一覧

さすがに忘れることはないけど一応。

比較系

記号意味
<小さい
<=以下
>大きい
>=以上
=等しい
<>等しくない

計算系

記号意味
+加算
減算
*乗算
/定数の除算
\整数の除算
Mod除算の余り

論理系

記号意味
And論理積
Or論理和
Not否定

○○を含む

関数でやるとき、”*含む*”みたいに*で挟むと含むという意味になりますよね。(ちなみに””は空白)
イメージ的には*は何でもいいという感じです。
なので”*含む”とやると、左側がなんでもいいとなります。

セルで指定するときは、”*”&A1&”*”となります。

これをVBAでやるときに便利なのがLikeです。

If Range("A1") Like "azechi" Then

End If

おわり

随時更新していきます。

↓もっといろんな言語を学びたい方は

自由コメント 登録不要です!

タイトルとURLをコピーしました