VBA 定数 宣言
火曜日, 3月 15th, 2022[宣言レベル]Const[定数名] As [データ型] = 値
宣言レベル:
Publicならすべてのモジュールで有効になり、Pribateなら現行のモジュールでのみ有効になります。
省略可能で、省略した場合はPrivateになります。
Const tax As Double = 0.08 ‘消費税率は8%
[宣言レベル]Const[定数名] As [データ型] = 値
宣言レベル:
Publicならすべてのモジュールで有効になり、Pribateなら現行のモジュールでのみ有効になります。
省略可能で、省略した場合はPrivateになります。
Const tax As Double = 0.08 ‘消費税率は8%
Sub 右ズレ()
Dim rngA, rngB As Range
Set rngA = Range(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address) 'ボタンの左上セル番地
Set rngB = Range(ActiveSheet.Shapes(Application.Caller).BottomRightCell.Address).Offset(-1, -1) 'ボタン右下のセル番地
Application.CutCopyMode = False 'コピーモード解除
Range(rngA.Address, rngB.Address).Offset(0, 1).Insert (xlShiftToRight) 'ボタンサイズ分挿入して右へシフト
End Sub
Excel操作
Esc
VBA
Application.CutCopyMode = False ’コピーモード解除
・無視して次を実行し最後にエラーの有無を確認
Sub エラー時中断()
'エラー時中断
On Error GoTo myErrorLabel
'【ここにマクロ処理】
'エラーがなければエラー処理をせずにマクロ終了
Exit Sub
'エラー時処理
myErrorLabel:
MsgBox "エラー番号:" & Err.Number & vbCrLf & _
"エラーの種類:" & Err.Description, vbExclamation
End Sub
・エラー発生時に中断してエラー処理
Sub エラーでも継続()
'エラーがあっても無視して進んでマクロ終了後にエラーがあったら報告
'エラー時無視してマクロ処理続行
On Error Resume Next
'【ここにマクロ処理】
'最後にエラー有無チェック
If Err.Number <> 0 Then
MsgBox "エラーが発生しました" & vbCrLf & _
Err.Description, vbExclamation
End If
End Sub
*
public:広)同一プロジェクト内>他のモジュールからも呼び出し可能
汎用的なものはpublicで作成しモジュールをインポートして機能を追加する
※省略時はpublic
private:狭)同一モジュール内>他のモジュールからは呼び出し不可能なので
左ツリーの標準モジュールにぶらさがっている各モジュールの同一内に記述
シートやブックのようなオブジェクトモジュール内のプロシージャや変数はprivate扱い
プロシージャとは
VBAの命令文のひとまとまり
・subプロシージャ
・functoinプロシージャ
・propertyプロシージャ
propertyプロシージャとは
ユーザーが作成した独自のプロパティに対して値の設定や取得を行うプロシージャ
●右クリメニューにコメントアウト追加
ツールバー右クリ>ユーザー設定
ツールバータブ>ショートカットメニューチェック
→ショートカットツールバーが表示
ショートカットメニュー>コードウィンドウ>コードエディタウィンドウ
→挿入先を表示しておく
コマンドタブ>分類:編集>コマンド:コメントブロック>コードエディタウィンドウへD&D
●アクセスキーを設定
ツールバー右クリ>ユーザー設定
コマンドタブ>分類:編集>コマンド:コメントブロック>ツールバーへD&D
選択したボタンの編集>&z>イメージとテキストを表示
→Alt+zでコメントブロック
●基本A~Zのみ(既存Excelショートカット)
●自分マクロショートカット
Application.MacroOptions Macro:=”a全シートA1セル選択”, ShortcutKey:=”A”
Application.MacroOptions Macro:=”h参考リンク”, ShortcutKey:=”C”
Application.MacroOptions Macro:=”fフォント”, ShortcutKey:=”F”
Application.MacroOptions Macro:=”h参考リンク”, ShortcutKey:=”H”
Application.MacroOptions Macro:=”k罫線田”, ShortcutKey:=”K”
Application.MacroOptions Macro:=”n新しいウィンドウで開く”, ShortcutKey:=”N”
Application.MacroOptions Macro:=”wウィンドウ枠の固定”, ShortcutKey:=”W”
Application.MacroOptions Macro:=”pハイパーリンクのスタイル設定”, ShortcutKey:=”P”
Application.MacroOptions Macro:=”r折り返し”, ShortcutKey:=”R”
Application.MacroOptions Macro:=”t書式ペースト”, ShortcutKey:=”T”
Application.MacroOptions Macro:=”v値ペースト”, ShortcutKey:=”V”
●既存割り当てショートカットの確認方法
●コードならでShift、Ctrl、A~Z以外も割り当て可能
スペースキーには割り当て不可?
既にWindowsで割り当てられているから?
●Windowsショートカットキー一覧
●ショートカット意味由来
Sub ウィンドウ位置サイズ状態() With Application MsgBox "Top:" & .Top & Chr(13) & _ " Left:" & .Left & Chr(13) & _ " Width:" & .Width & Chr(13) & _ " Height:" & .Height & Chr(13) & _ " WindowState:" & .WindowState End With End Sub
参考:ウィンドウ位置
参考:ウィンドウサイズ
WindowState:ウィンドウの状態
※最大化/最小化の状態で位置サイズを設定を設定するとエラーになるので、xlNormalを設定してから位置サイズを変更
定数 値 内容
xlMaximized -4137 最大化
xlMinimized -4140 最小化
xlNormal -4143 標準
参考:WindowState
Chr(13)
vbCrLf
(キャリッジ リターンとかライン フィード)
MsgBox “1行目 & Chr(13) & 2行目”