Excel2000 VBA メモ1 [Excel2000 VBA メモ]
マクロ実行の高速化
- Application.ScreenUpdating=False '画面更新の抑制
- 処理
- Application.ScreenUpdating=True '抑制の解除
- 処理内容によってはかなり高速化する
VBエディター イミティエイト
- Debug.Print A →イミティエイトウインドウにAの値が表示される
- B=2 と入力し、?Bと入力するとBの値2が表示される
アクティブセルの位置を記録し、処理後にセルの位置を処理前にもどす
- 現在位置 = AcriveCell.Address
- 処理
- Range(現在位置).Select
登録したマクロにショートカットキーを設定する
- メニュバー>ツール>マクロ でショートカットキーを設定するマクロを選択し、右下の「オプション」ボタンを押して設定する
Debug.Print
- Debug.Print 変数 & "/" & 変数2 & "/" & 変数3 & "/" & 変数4
- イミティエイト ウィンドウに変数1-4が表示される
- イミティエイトウィンドウを表示するには、VBエディターのメニューバー>表示タブからイミティエエイトウィンドウを選択する
Dim test As Range
- testをRange(セル範囲)にする 例 Range("A1:C3")
- 値を入れるときはSetを使用する
- Set test = Range("A1:C3")
- test = 10 A1からC3の範囲に10が入る
- test.Delete 上に移動
- test = "" 移動せずにセルを空にするRange("A1:A3").Clear Range("A1:A3").ClearContents
マクロ実行時に音を出す
- Beep
ワークブックをアクティブにする(複数のブックを起動している時)
- Workbooks("ブック名.xls") .Activate '最前面に表示(アクティブにする)
シートに背景画像の表示、削除
- ActiveSheet.SetBackgroundPicture Filename:="C:\1.jpg" 表示
- ActiveSheet.SetBackgroundPicture Filename:=vbNullString または""設定しない(削除)
セル幅を設定する
- Cells(1, 1).ColumnWidth = 8 基準文字0(ゼロ)8文字分の幅?
- Cells(1, 1).ColumnWidth = 100/1.78 セル幅を約100mmに設定する(印刷時)1.78の値を変えて100mmで印刷されるようにする
ブック,シート情報
- ブックの シート数を調べる Worksheets.Count
- シート名を調べる Worksheets(シート番号).Name
- ブック名を調べる ActiveWorkbook.Name
- ブックのファイルサイズ FileLen(フルパス) C:\1.xls
- ブックのフルパス ActiveWorkbook.FullName
For ループ
- For x = 1 To 100
- x = x+1
- If x=10 Then Exit For xが10なら forから抜け出す
- Next x
- For ループを途中で抜け出すのには、Exit For
- For x=0 To 100 Step 5 xは0.5.10.15・・・・・・・・100
Exit Sub
- Exit Sub でSubから抜け出す(終了する)
GoTo ラベル
- If x=10 Then GoTo ラベル xが10ならラベルに飛ぶ(もどってこない)
- ラベル:
- 処理
With End With 複数の処理
- With cells(1,1) ’セルA1にまとめて設定 太字の部分を省略できる
cells(1,1).Value = 10- With
cells(1,1).Size = 14cells(1,1).Bold = True- End With
cells(1,1).ColumnWidth =16cells(1,1).RowHeight = 20- End With
If Then Else End If
If Then ElseIf End If
- よくIfブロックに対応する End Ifがありません と叱られる
- 解説は http://officetanaka.net/excel/vba/error/compilation_error/error_13.htm
数値変数
- データ型 名称 消費メモリー
- Integer 整数型 2バイト
- Long 長整数型 4バイト
- Single 単精度浮動小数点数型 4バイト
- Double 倍精度浮動小数点数型 8バイト
- Currency 通貨型 8バイト
文字列変数
- String 文字列型
オブジェクトを格納する変数
- Object オブジェクト型
日付を格納する変数
- Date 日付型
全てのデータに対応する変数
- Variant バリアント型
コードの記述が長くなった時は_アンダーバーで改行 「半角スペース+_(アンダースコア?)」
- ActiveSheet.SetBackgroundPicture Filename:= _
- vbNullString
- ActiveSheet.SetBackgroundPicture Filename:=vbNullString と同じ
コメント 0