VBAマクロ
VBAマクロ
お知らせ:
当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版
を参照してください。
マクロの作成方法
マクロを作成するには、次の操作を行います:
[Developer]
>
[Create Macro]
に移動します。
表示されたダイアログで、マクロの名前と説明を入力し、[Create] をクリックします。
VBA エディタでコードを入力します。
[Save]
をクリックします。
はじめに使えるマクロコードの例:
行の非表示/再表示
Sub HideUnhideRowColumn()
Sheets('Sheet1').Columns('A:E').Hidden = True
Sheets('Sheet1').Columns('C:D').Hidden = False
Sheets('Sheet1').Rows('11:15').Hidden = True
Sheets('Sheet1').Rows('12:13').Hidden = False
End Sub
行の切り取り、コピー、貼り付け
Private Sub CopyCutRow()
WorkSheets('Sheet1').Rows(2).Copy WorkSheets('Sheet1').Rows(4) //2 行目をコピーして 4 行目に貼り付け
WorkSheets('Sheet2').Rows(2).Cut WorkSheets('Sheet1').Rows(4)//2 行目を切り取り、4 行目に貼り付け
End Sub
セルの値の変更に基づいてメールを送信する
Private Sub Worksheet_Change(ByVal Target As Range)
Set watchRange = Range('B1:B100') '監視するセル範囲を想定
If Not Intersect(Target,watchRange) Is Nothing Then
If Target.Value = 'Send Mail' Then
ThisWorkbook.HasRoutingSlip = True
With ThisWorkbook.RoutingSlip
.Recipients = Array('
SendEmail@zoho.com
') '複数の宛先にメールを送信可能
.Subject = 'Task completed'
.Message = 'Mail content' & Target.Row 'セルの値をメールで送信
.AttachWorkbook = True
'既定ではファイルがメールに添付されます。不要な場合は次のように設定します
' .AttachWorkbook を false に設定。
End With
ThisWorkbook.Route
End If
End If
End Sub
ブックを開いたときのイベントと新しいシート作成イベント
REM ThisWorkbook タブ
Private Sub Workbook_Open()
Msgbox('I am an open event ',-1,'Welcome back!')
End Sub
Private Sub Workbook_NewSheet(ByVal sh As Object)
Msgbox('I am a new sheet event, You have created a sheet! ',-1,' Name it ')
End Sub
ワークシート変更イベント
REM Sheet タブ
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = false
On Error Goto ENEV
REM add your code below
Msgbox(' I am a change event ',-1,'OH that's a good change!')
ENEV:
Application.EnableEvents = true
End Sub
マクロの記録方法
マクロを使用すると、日常的な作業を自動化できます。毎日同じ書式設定を適用している場合は、その操作をマクロとして記録できます。
マクロを記録するには、次の操作を行います:
[開発者] > [データマクロ] に移動します。
入力フィールドに名前と説明を入力します。
必要に応じて、[相対参照を使用] をオンまたはオフにします。
[データ] をクリックします。
記録を停止するには、停止アイコンをクリックします。
[コードの表示] をクリックすると、記録されたマクロを VBA エディターで確認できます。[マクロ一覧] をクリックすると、スプレッドシート内のすべてのマクロを表示できます。
絶対参照
- セルは $列番号$セル番号 の形式で参照され、マクロは記録時と同じセルで実行されます。
相対参照
- セルは「$」の制約なしで参照され、マクロは実行開始位置からの相対的なセルに対して実行されます。