【2026年7月最新】VBA Dictionaryオブジェクト完全ガイド|連想配列の使い方・活用パターン・Claude Code活用
この記事の内容
VBAで「特定のキーに対応する値を素早く検索したい」「データの重複を除去したい」「カテゴリ別に集計したい」という処理を書くとき、通常の配列やCollectionよりも遥かに効率的に書けるのがDictionaryオブジェクトです。
DictionaryはKey(キー)とItem(値)のペアでデータを管理する連想配列で、キーによる高速な検索・追加・削除が可能です。この記事では、VBA Dictionaryの基本から全メソッドの使い方・実務での活用パターン・よくある落とし穴・Claude Codeでの自動コード生成まで解説します。
01 WHAT IS DICT Dictionaryとは何か|配列との違い 連想配列の概念と配列・Collectionとの使い分け
VBAのDictionaryはMicrosoft Scripting Runtimeが提供する連想配列オブジェクトです。通常の配列が「番号(インデックス)」でデータを管理するのに対し、Dictionaryは「名前(キー)」でデータを管理します。これにより「社員コード→名前」「商品コード→価格」のようなキーと値の関連を直接保持できます。
📚 用語解説
連想配列(Associative Array):キーと値のペアでデータを管理するデータ構造。通常の配列がインデックス(0, 1, 2...)でアクセスするのに対し、連想配列はキー(文字列や数値)でアクセスできる。キーによる検索がO(1)(一定時間)で完了するため、大量データの中から特定のキーを持つ値を検索する処理が高速。VBAではDictionaryオブジェクトが連想配列に相当する。PythonではDict、JavaScriptではObject/Map、JavaではHashMapに相当する。
| 比較軸 | 配列(Array) | Collection | Dictionary |
|---|---|---|---|
| アクセス方法 | インデックス番号 | インデックスまたはキー | キー(文字列/数値) |
| キーの存在確認 | なし(自分で実装) | なし(エラーで確認) | Exists()メソッドあり |
| 削除 | 難しい | Remove()可能 | Remove()可能 |
| 重複キー | 制限なし | キーは一意 | キーは一意 |
| 検索速度 | 遅い(線形探索) | 普通 | 高速(ハッシュ探索) |
| 使い分け | 順序が必要な単純データ | 追加・削除が多い場合 | キーでの高速検索・集計 |
02 BASIC USAGE Dictionaryの宣言・作成・基本操作 CreateObjectとMicrosoft Scripting Runtimeの参照設定の2通り
DictionaryはVBA標準機能ではなく、外部ライブラリ(Microsoft Scripting Runtime)のオブジェクトです。使い方は2通りあります。
参照設定(Tools → References → Microsoft Scripting Runtime)を追加するとEarlyBinding(早期バインディング)になりコード補完が効きますが、他PCで実行すると参照が切れることがあります。CreateObject("Scripting.Dictionary")でLateBinding(遅延バインディング)にするとマクロを別PCに配布しても動きます。本番用マクロはCreateObject方式が安全です。
' 方法1: CreateObject(遅延バインディング・参照設定不要・配布向き)
Sub DictionaryBasicLate()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
' データを追加
dict.Add "東京", 1393
dict.Add "大阪", 884
dict.Add "名古屋", 231
' キーで値を取得
Debug.Print dict("東京") ' → 1393
Debug.Print dict.Item("大阪") ' → 884
' 要素数を確認
Debug.Print "件数: " & dict.Count ' → 3
End Sub
' 方法2: 参照設定あり(早期バインディング・コード補完が効く)
' ※ Tools → References → Microsoft Scripting Runtime をチェックする必要あり
Sub DictionaryBasicEarly()
Dim dict As Scripting.Dictionary
Set dict = New Scripting.Dictionary
dict.Add "Key1", "Value1"
Debug.Print dict("Key1") ' → Value1
End Sub
' Dictionaryの基本操作まとめ
Sub DictionaryAllBasicOps()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
' 1. 追加(Add)
dict.Add "A001", "田中太郎"
dict.Add "A002", "山田花子"
dict.Add "A003", "佐藤次郎"
' 2. 値の取得
Dim name As String
name = dict("A001") ' → "田中太郎"
name = dict.Item("A002") ' → "山田花子"(Itemプロパティ経由)
' 3. 値の更新(Itemに代入)
dict("A001") = "田中一郎" ' Addではなく代入で上書き
' 4. 削除(Remove)
dict.Remove "A003"
Debug.Print dict.Count ' → 2
' 5. 全削除(RemoveAll)
dict.RemoveAll
Debug.Print dict.Count ' → 0
Set dict = Nothing ' オブジェクトを解放
End Sub
03 ALL METHODS 全メソッド・プロパティ一覧と使い方 Add/Remove/RemoveAll/Exists/Keys/Items/Count/CompareMode
Dictionaryオブジェクトのすべてのメソッドとプロパティをまとめます。
| 名前 | 種類 | 説明 | 使い方例 |
|---|---|---|---|
| Add | メソッド | キーと値のペアを追加 | dict.Add "key", "value" |
| Remove | メソッド | 指定キーを削除 | dict.Remove "key" |
| RemoveAll | メソッド | すべてのキーを削除 | dict.RemoveAll |
| Exists | メソッド | キーが存在すればTrue | dict.Exists("key") |
| Keys | メソッド | 全キーの配列を返す | dict.Keys() |
| Items | メソッド | 全値の配列を返す | dict.Items() |
| Count | プロパティ | 要素数を返す | dict.Count |
| CompareMode | プロパティ | キーの大文字小文字区別 | dict.CompareMode = vbTextCompare |
' CompareMode(大文字小文字の区別)
' ※ Addする前に設定する必要あり
Sub CompareModeExample()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
' vbTextCompare: 大文字小文字を無視("abc"と"ABC"を同一キーとして扱う)
dict.CompareMode = 1 ' vbTextCompare = 1
dict.Add "apple", "リンゴ"
Debug.Print dict.Exists("apple") ' → True
Debug.Print dict.Exists("APPLE") ' → True(大文字小文字無視)
Debug.Print dict.Exists("Apple") ' → True(大文字小文字無視)
' vbBinaryCompare(デフォルト=0): 大文字小文字を区別
' ※ Addした後にCompareModeを変えることはできない(エラーになる)
End Sub
04 EXISTS Existsでキーの存在確認・条件分岐 存在しないキーへのアクセスとAddによる「キー重複エラー」を防ぐ
dict("存在しないキー")にアクセスすると、エラーではなく空の値("")が返されてそのキーが自動的に追加されます。これは意図しない空エントリを作る原因になります。また、すでに存在するキーにAddしようとすると「このキーはすでに割り当てられています(エラー457)」が発生します。どちらも Exists() で事前確認することで防げます。
' Existsを使った安全な操作パターン
Sub SafeDictionaryOps()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "A001", "田中太郎"
dict.Add "A002", "山田花子"
' パターン1: 存在するキーを取得(存在確認あり)
Dim key As String
key = "A001"
If dict.Exists(key) Then
Debug.Print dict(key) ' → 田中太郎
Else
Debug.Print key & " は存在しません"
End If
' パターン2: 存在しなければ追加・あれば更新(UPSERTパターン)
Dim newKey As String
Dim newVal As String
newKey = "A001"
newVal = "田中一郎"
If dict.Exists(newKey) Then
dict(newKey) = newVal ' 上書き
Else
dict.Add newKey, newVal ' 新規追加
End If
' パターン3: 存在するなら削除
Dim removeKey As String
removeKey = "A002"
If dict.Exists(removeKey) Then
dict.Remove removeKey
End If
Debug.Print dict.Count ' → 1 (A001のみ)
End Sub
📚 用語解説
UPSERTパターン:UPDATE + INSERT を組み合わせた操作。キーが存在すれば更新(Update)、存在しなければ追加(Insert)する処理。DictionaryのExistsを使って「If dict.Exists(key) Then dict(key) = val Else dict.Add key, val」と実装する。カウント集計(1回目はAdd、2回目以降は+1)でよく使う基本パターン。
05 LOOP Keys・Itemsで全データをループ処理 For EachとインデックスループでDictionaryの全要素を処理する
' Keys()・Items()でループ処理する
Sub DictionaryLoopPatterns()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "東京", 1393
dict.Add "大阪", 884
dict.Add "名古屋", 231
dict.Add "福岡", 156
' パターン1: For Eachでキーをループ
Dim k As Variant
For Each k In dict.Keys
Debug.Print k & " : " & dict(k)
Next k
' 東京 : 1393 / 大阪 : 884 / 名古屋 : 231 / 福岡 : 156
' パターン2: Keys()配列でインデックスループ
Dim keys As Variant
keys = dict.Keys ' 全キーを配列として取得
Dim i As Long
For i = 0 To UBound(keys)
Debug.Print i & ": " & keys(i) & " = " & dict(keys(i))
Next i
' パターン3: Items()で値だけをループ
Dim items As Variant
items = dict.Items ' 全値を配列として取得
Dim total As Long
For i = 0 To UBound(items)
total = total + items(i)
Next i
Debug.Print "合計: " & total ' → 2664
' パターン4: セルに書き出す
Dim allKeys As Variant
allKeys = dict.Keys
For i = 0 To UBound(allKeys)
Cells(i + 1, 1).Value = allKeys(i) ' A列にキー
Cells(i + 1, 2).Value = dict(allKeys(i)) ' B列に値
Next i
End Sub
Variant型の配列が返る
インデックスループ
キーに対応する値
Cells(i+1, col).Value
06 PRACTICAL 実務活用パターン:カウント集計・重複除去・逆引き 最もよく使う3大パターンの実装コード
6-1. カテゴリ別カウント集計
' カテゴリ別カウント集計(最頻出パターン)
Sub CountByCategory()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
' A列のカテゴリデータを集計(B列は売上金額)
Dim lastRow As Long
Dim ws As Worksheet
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Dim i As Long
Dim category As String
For i = 2 To lastRow ' 1行目はヘッダー
category = CStr(ws.Cells(i, 1).Value)
If category <> "" Then
If dict.Exists(category) Then
dict(category) = dict(category) + 1 ' 件数+1
Else
dict.Add category, 1 ' 初出は1から開始
End If
End If
Next i
' 結果をSheet2に書き出す
Dim resultWs As Worksheet
Set resultWs = Sheets("Sheet2")
resultWs.Cells.Clear
Dim allKeys As Variant
allKeys = dict.Keys
For i = 0 To UBound(allKeys)
resultWs.Cells(i + 1, 1).Value = allKeys(i)
resultWs.Cells(i + 1, 2).Value = dict(allKeys(i))
Next i
MsgBox "集計完了: " & dict.Count & "カテゴリ"
End Sub
6-2. 重複除去
' A列の重複データを除去してユニーク値のみをB列に出力
Sub RemoveDuplicates()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Dim ws As Worksheet
Set ws = ActiveSheet
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' A列を読み込んでDictionaryのキーとして登録(値は不要なので1を入れる)
Dim i As Long
For i = 1 To lastRow
Dim val As String
val = CStr(ws.Cells(i, 1).Value)
If val <> "" And Not dict.Exists(val) Then
dict.Add val, 1
End If
Next i
' ユニーク値をB列に書き出す
Dim allKeys As Variant
allKeys = dict.Keys
For i = 0 To UBound(allKeys)
ws.Cells(i + 1, 2).Value = allKeys(i)
Next i
Debug.Print "元: " & lastRow & "件 → ユニーク: " & dict.Count & "件"
End Sub
6-3. 逆引き検索(値からキーを探す)
' 値からキーを逆引きするパターン
Sub ReverseSearch()
' 正引き: コード→名前
Dim codeToName As Object
Set codeToName = CreateObject("Scripting.Dictionary")
codeToName.Add "A001", "田中太郎"
codeToName.Add "A002", "山田花子"
codeToName.Add "A003", "佐藤次郎"
' 逆引き用Dictionary(名前→コード)を作成
Dim nameToCode As Object
Set nameToCode = CreateObject("Scripting.Dictionary")
Dim k As Variant
For Each k In codeToName.Keys
nameToCode.Add codeToName(k), k ' 値をキー、キーを値に
Next k
' 名前からコードを取得
Debug.Print nameToCode("山田花子") ' → "A002"
Debug.Print nameToCode("佐藤次郎") ' → "A003"
' 検索結果が存在するか確認してから使う
Dim searchName As String
searchName = "鈴木一郎"
If nameToCode.Exists(searchName) Then
Debug.Print nameToCode(searchName)
Else
Debug.Print searchName & " は見つかりません"
End If
End Sub
逆引き辞書は値(Item)が一意でないと成立しません。複数のキーが同じ値を持つ場合、後から追加したキーが上書きされます(またはAddでエラー)。逆引きを使う前に、元のDictionaryの値がユニークかどうかを確認してください。値が重複する可能性がある場合は、逆引き辞書の値をコレクションにして複数キーを保持する実装が必要です。
07 NESTED ネストDictionaryと2次元データ Dictionaryの値にDictionaryを入れる2階層データ構造
📚 用語解説
ネストDictionary(入れ子の連想配列):DictionaryのItemにさらにDictionaryオブジェクトを格納すること。これにより「部署→{社員名, 年齢, 役職}」のように1つのキーに複数の属性(フィールド)を持つ2次元データを扱える。JSONのネストした構造に相当する。注意点: 各内部DictionaryもCreateObjectで別途作成する必要がある。Nothingで解放するときは内部Dictionaryも解放する。
' ネストDictionary(2階層のデータ管理)
Sub NestedDictionaryExample()
Dim employees As Object
Set employees = CreateObject("Scripting.Dictionary")
' 社員ID → {名前, 部署, 年齢} のネスト構造
Dim emp1 As Object, emp2 As Object, emp3 As Object
Set emp1 = CreateObject("Scripting.Dictionary")
emp1.Add "name", "田中太郎"
emp1.Add "dept", "営業部"
emp1.Add "age", 32
employees.Add "A001", emp1
Set emp2 = CreateObject("Scripting.Dictionary")
emp2.Add "name", "山田花子"
emp2.Add "dept", "開発部"
emp2.Add "age", 28
employees.Add "A002", emp2
' 特定の社員の属性にアクセス
Debug.Print employees("A001")("name") ' → 田中太郎
Debug.Print employees("A001")("dept") ' → 営業部
Debug.Print employees("A002")("age") ' → 28
' 全社員をループして情報を表示
Dim empId As Variant
For Each empId In employees.Keys
Dim empInfo As Object
Set empInfo = employees(empId)
Debug.Print empId & ": " & empInfo("name") & " (" & empInfo("dept") & ")"
Next empId
' 部署別に集計
Dim deptCount As Object
Set deptCount = CreateObject("Scripting.Dictionary")
For Each empId In employees.Keys
Dim dept As String
dept = employees(empId)("dept")
If deptCount.Exists(dept) Then
deptCount(dept) = deptCount(dept) + 1
Else
deptCount.Add dept, 1
End If
Next empId
For Each dept In deptCount.Keys
Debug.Print dept & ": " & deptCount(dept) & "人"
Next dept
End Sub
08 ERRORS Dictionaryの落とし穴とエラー対策 キー重複・型ミス・Nothing解放の3大注意点
同じキーにもう一度dict.Add()しようとすると「エラー457: このキーはすでに割り当てられています」が発生します。防止策は①Addの前にExists()でキーの存在確認をする、②Addを使わずdict(key) = value(代入)で上書きする(存在しない場合は自動追加)のどちらかです。集計処理では「1回目はAdd、2回目以降は代入」というUPSERTパターンが安全です。
' よくあるエラーと防止コード
' エラー1: キー重複エラー(エラー457)
Sub AvoidDuplicateKeyError()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "key1", "value1"
' NG: 同じキーにAddするとエラー
' dict.Add "key1", "value2" ← エラー457
' OK: Existsで確認してから操作
If Not dict.Exists("key1") Then
dict.Add "key1", "value2"
Else
dict("key1") = "value2" ' 上書き
End If
' または代入で常に上書き(存在しなければ自動追加)
dict("key1") = "value2" ' Existsなしで安全に上書き/追加
End Sub
' エラー2: 存在しないキーへのアクセスで空エントリが作られる
Sub AvoidEmptyEntryCreation()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "A001", "田中"
' NG: 存在しないキーにアクセスすると空エントリが作られる
Dim val As String
val = dict("A999") ' エラーではなく空文字が返り"A999"が追加される
Debug.Print dict.Count ' → 2(A999が追加されている!)
' OK: 事前にExistsで確認
Dim dict2 As Object
Set dict2 = CreateObject("Scripting.Dictionary")
dict2.Add "A001", "田中"
If dict2.Exists("A999") Then
val = dict2("A999")
Else
val = "" ' デフォルト値
End If
Debug.Print dict2.Count ' → 1(余計なエントリなし)
End Sub
' エラー3: CompareMode変更タイミングのエラー
Sub CompareModeError()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
' 正しい: Addの前にCompareMode設定
dict.CompareMode = 1 ' vbTextCompare
dict.Add "Apple", 1
' NG: Addの後にCompareModeを変えるとエラー(実行時エラー5)
' dict.Add "Apple", 1
' dict.CompareMode = 1 ← エラー!
Set dict = Nothing ' 最後はNothingで解放
End Sub
キー重複エラーを防ぐ
Addの前に設定する
空エントリ生成を防ぐ
メモリを明示的に解放
09 AI ASSIST Claude CodeでDictionary処理を自動生成する データ構造の仕様を伝えるだけでDict処理コードが即生成
Claude Codeを使えば、「どんなデータを」「何をキーに」「どう集計・検索するか」を日本語で伝えるだけで、DictionaryのVBAコードが即座に生成されます。Exists確認・ループ処理・エラー対策も自動で入ります。
| ユースケース | Claude Codeへの指示例 |
|---|---|
| カテゴリ別集計 | 「A列にカテゴリ名、B列に売上金額があります。DictionaryでカテゴリごとにB列を合計してSheet2に出力するマクロを書いて。」 |
| 重複除去 | 「A列に重複を含むコードリストがあります。Dictionaryを使ってユニークなコードだけをB列に出力するマクロを書いて。Exists確認を入れて。」 |
| マスタ参照 | 「Sheet1のA列に社員コード、Sheet2のA-B列にコード→名前のマスタがあります。Dictionaryでマスタを辞書化してSheet1のB列に名前を書き込むマクロを書いて。」 |
| ネスト集計 | 「A列に部署名、B列に社員名、C列に売上がある。部署別に{件数, 合計売上}を辞書で集計してデバッグ出力するVBAを書いて。」 |
入力形式・キー・値・出力先
「Dictionaryで○○する
マクロを書いて」
Alt+F11でVBE起動
小さいデータで
期待通りか確認
📚 用語解説
LateBinding(遅延バインディング):CreateObject()やDim変数 As Objectを使ってオブジェクトを参照する方法。実行時にオブジェクトの型が決定される。参照設定(References)が不要なため、他のPCにマクロを配布してもライブラリが見つからないエラーが発生しにくい。コード補完(IntelliSense)は効かない。EarlyBinding(早期バインディング)はDim dict As Scripting.Dictionaryと型を明示する方法で補完は効くが、参照設定を追加する必要がある。
📚 用語解説
ハッシュテーブル:Dictionaryが内部で使うデータ構造。キーをハッシュ関数で変換して格納位置を決めるため、要素数が増えても検索時間がほぼ一定(O(1))。これに対して配列の線形探索はO(n)で要素数に比例して時間がかかる。10,000件のデータからキーで1件を検索する場合、配列は最大10,000回の比較が必要だがDictionaryはほぼ1回。大量データの集計・検索でDictionaryが速い理由はこのハッシュテーブル方式による。
10 CONCLUSION まとめ:VBA Dictionary完全チェックリスト 宣言から実務パターンまでの総まとめ
ExcelVBAの集計・データ処理をAIで自動化したい方へ
Dictionaryを活用したカウント集計・重複除去・マスタ参照など、VBAのデータ処理はClaude Codeとの組み合わせで大幅に効率化できます。
AI鬼管理では、Excel/VBA業務の自動化設計・実装支援を行っています。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
AI活用を自社で回せるようになりたい方へ
AI鬼管理
Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。
よくある質問
Q. VBA DictionaryとCollectionの違いは何ですか?
A. CollectionはVBA標準のオブジェクトで参照設定不要ですが、Existsメソッドがなく(エラーで代替)、キーによる削除はCollection.Remove "key"で可能ですが、大文字小文字を常に無視します。DictionaryはMicrosoft Scripting RuntimeのオブジェクトでCreateObjectが必要ですが、Existsメソッドがある・CompareMode設定可能・Keys()/Items()で全データを配列として取得できるなど機能が豊富です。集計・検索・重複除去などデータ処理に使うならDictionary、単純な追加・削除ならCollectionという使い分けが一般的です。
Q. Dictionaryに同じキーを追加しようとするとエラーが出ます。どうすればいいですか?
A. エラー457「このキーはすでに割り当てられています」が出ています。解決策は2つです。①Addの前にExists()でキーの存在確認をする: If Not dict.Exists(key) Then dict.Add key, value End If。②Addを使わずに代入を使う: dict(key) = value。この代入方式はキーが存在しなければ自動追加、存在すれば上書きになります(UPSERTパターン)。集計処理では「1回目はAdd、2回目以降はdict(key)+1」というパターンも多いですが、毎回Existsで確認するのが最も安全です。
Q. DictionaryのKeys()とItems()はどう使うのですか?
A. どちらもVariant型の配列を返します。dict.Keys()は全キーの配列、dict.Items()は全値の配列を返します。For Each k In dict.Keys()でループするか、Dim arr As Variant: arr = dict.Keys(): For i = 0 To UBound(arr)でインデックスループできます。キーと値を同時に使う場合はKeys()でキーの配列を取得し、dict(arr(i))で値にアクセスするパターンが一般的です。
Q. DictionaryでVLOOKUPのような検索をしたい場合はどうしますか?
A. マスタデータ(コード→名前など)を最初にDictionaryに読み込んでおき、その後For Eachループでデータ行を処理します。マスタ読み込み: For i = 2 To lastRow: dict.Add Cells(i,1).Value, Cells(i,2).Value: Next i。検索: If dict.Exists(searchKey) Then result = dict(searchKey) End If。VLOOKUPは行ごとにシート全体を再検索するため大量データで遅くなりますが、Dictionaryはハッシュテーブルを使うため高速です。10,000行以上のVLOOKUP処理はDictionaryに変えると大幅に速くなることがあります。
Q. DictionaryのCompareMode(大文字小文字の区別)はいつ設定すればいいですか?
A. CompareModeはAddでデータを追加する前に設定する必要があります。Add後にCompareMode を変えようとすると実行時エラー5「プロシージャの呼び出し、または引数が不正です」が発生します。設定方法: Set dict = CreateObject("Scripting.Dictionary"): dict.CompareMode = 1(1=vbTextCompare: 大文字小文字無視、0=vbBinaryCompare: 区別)。その後dict.Addでデータを追加します。
Q. Claude CodeにVBA Dictionaryのコードを書いてもらうときのコツは?
A. 「入力データの場所(シート名・列番号)」「Dictionaryのキーに何を使うか」「Itemに何を格納するか」「出力先(デバッグ出力かシートへの書き込みか)」の4点を明確に伝えるのが効果的です。例: 「Sheet1のA列に商品コード(A001等)、B列に売上金額があります。Dictionaryで商品コードをキーに売上合計を集計し、Sheet2のA-B列に出力するマクロを書いて。空セル・Null対応とExists確認を入れて。」このように具体的に伝えると完成度の高いコードが返ってきます。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
Claude Code を業務に落とし込む
専門研修コース一覧
受講者本人の業務を題材に、「使いこなせる」状態になるまで伴走する研修プログラム。1対1特化型・ハンズオン・法人講座の3コースを展開中。業務特化・実装まで踏み込むタイプのClaude Code研修です。
研修コース一覧を見る →AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。


