Skip to content
Back to skills

Excel Vba

ASecurity

Excel VBA開発の専門スキル。VBAマクロ作成、Excel操作自動化、ワークブック処理時に使用。

  • 666 stars
  • 0 votes
  • 2 copies
  • 14 views
  • Added February 8, 2026
documentationgo

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill excel-vba --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Excel Vba?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Excel Vba
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-excel-vba/badge)](https://www.skillsdirectory.com/skills/majiayu000-excel-vba)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: excel-vba
description: Excel VBA開発の専門スキル。VBAマクロ作成、Excel操作自動化、ワークブック処理時に使用。
user-invocable: true
argument-hint: "[task-description]"
---

# Excel VBA開発スキル

## 基本方針
- Option Explicit必須
- エラーハンドリング必須(On Error GoTo)
- 画面更新・計算の制御でパフォーマンス最適化
- 変数は明示的に型宣言

## 標準テンプレート

### Sub プロシージャ
```vba
Option Explicit

Public Sub ProcessData()
    On Error GoTo ErrorHandler

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    ' 処理本体

CleanUp:
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Exit Sub

ErrorHandler:
    MsgBox "エラー: " & Err.Description, vbExclamation
    Resume CleanUp
End Sub
```

## 命名規則
- モジュール: mod_機能名
- プロシージャ: 動詞_目的語
- 変数: キャメルケース(接頭辞付き: str, lng, rng等)

## よく使うパターン

### 最終行取得
```vba
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
```

### 範囲ループ
```vba
Dim cell As Range
For Each cell In Range("A1:A" & lastRow)
    ' 処理
Next cell
```

### 配列処理(高速)
```vba
Dim data As Variant
data = Range("A1:Z1000").Value
' 配列で処理
Range("A1:Z1000").Value = data
```

## パフォーマンス最適化
```vba
' 処理開始時
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False

' 処理終了時
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
```

## エラーハンドリングパターン
```vba
On Error GoTo ErrorHandler
' 処理

Exit Sub

ErrorHandler:
    Dim errMsg As String
    errMsg = "エラー番号: " & Err.Number & vbCrLf & _
             "エラー内容: " & Err.Description
    MsgBox errMsg, vbCritical, "エラー"
    ' 必要に応じてログ出力
End Sub
```

## Examples

- `/excel-vba 売上データを集計したい` → ワークシート操作+集計ロジックのテンプレートを提供
- `/excel-vba 複数のExcelを統合したい` → FileSystemObjectとワークブック操作のパターンを提供
- `マクロが遅い` → パフォーマンス最適化パターン(ScreenUpdating等)を適用
- `エラーでマクロが止まる` → エラーハンドリングテンプレートを提供

## Guidelines

- 必ず `Option Explicit` を宣言して暗黙の変数宣言を禁止
- すべてのプロシージャに `On Error GoTo ErrorHandler` を実装
- 大量データ処理時は配列に読み込んでからループ処理
- 処理前後で `ScreenUpdating` と `Calculation` を制御
- 変数名には型を示す接頭辞を付ける(str, lng, rng, ws等)
- 長いプロシージャは機能ごとに分割して可読性を確保

## 関連エージェント
- `@excel-vba-expert`: VBA開発専門家

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.