Archive for the ‘VBA’ Category

VBA 定数 宣言

火曜日, 3月 15th, 2022

[宣言レベル]Const[定数名] As [データ型] = 値

宣言レベル:
Publicならすべてのモジュールで有効になり、Pribateなら現行のモジュールでのみ有効になります。
省略可能で、省略した場合はPrivateになります。

Const tax As Double = 0.08 ‘消費税率は8%

ボタンで右ズレ

土曜日, 9月 18th, 2021
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

コピーモード 解除

土曜日, 9月 18th, 2021

Excel操作
Esc

VBA
Application.CutCopyMode = False ’コピーモード解除

VBAコードを見やすく分けて記述

土曜日, 11月 28th, 2020

[半角スペース] + [アンダースコア]

エラー処理

土曜日, 11月 21st, 2020

・無視して次を実行し最後にエラーの有無を確認

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

 

private public スコープ 有効範囲

木曜日, 11月 19th, 2020

public:広)同一プロジェクト内>他のモジュールからも呼び出し可能
汎用的なものはpublicで作成しモジュールをインポートして機能を追加する
※省略時はpublic

private:狭)同一モジュール内>他のモジュールからは呼び出し不可能なので
左ツリーの標準モジュールにぶらさがっている各モジュールの同一内に記述

シートやブックのようなオブジェクトモジュール内のプロシージャや変数はprivate扱い

プロシージャとは
VBAの命令文のひとまとまり
・subプロシージャ
・functoinプロシージャ
・propertyプロシージャ

propertyプロシージャとは
ユーザーが作成した独自のプロパティに対して値の設定や取得を行うプロシージャ

VBA VBE コメントアウト ショートカット

土曜日, 10月 31st, 2020

●右クリメニューにコメントアウト追加
ツールバー右クリ>ユーザー設定
ツールバータブ>ショートカットメニューチェック
→ショートカットツールバーが表示
ショートカットメニュー>コードウィンドウ>コードエディタウィンドウ
→挿入先を表示しておく
コマンドタブ>分類:編集>コマンド:コメントブロック>コードエディタウィンドウへD&D

●アクセスキーを設定
ツールバー右クリ>ユーザー設定
コマンドタブ>分類:編集>コマンド:コメントブロック>ツールバーへD&D
選択したボタンの編集>&z>イメージとテキストを表示
→Alt+zでコメントブロック

VBA マクロ ショートカットキー 割り当て A~Z

土曜日, 10月 31st, 2020

●基本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ショートカットキー一覧

●ショートカット意味由来

ウィンドウ 位置 サイズ 状態 Application.Top Left Width Height WidowsState

土曜日, 2月 15th, 2020
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

 

 

 

msgbox 改行 Chr(13) メッセージボックス

土曜日, 2月 15th, 2020

Chr(13)
vbCrLf
(キャリッジ リターンとかライン フィード)

MsgBox “1行目 & Chr(13) & 2行目”