Excelでドラクエ風バトル画面を作ってみた

Excelでドラクエのバトル画面を真似してみました。
VBAを少し勉強したときに、練習用に作ったもの。
フォントの色とかサイズとかはあらかじめセルに設定しておくと、モジュールが簡潔になるかもしれません。
シート間の移動、範囲のコピーペースト、関数の活用、フラグによる処理の変更、Sleep関数のなどなど、やりたいことは一通りできたと思います。

## 基本設定
### VBA
```vb:ThisWorkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Close savechanges:=False
End Sub

Private Sub Workbook_Open()
    Worksheets("ゲームスタート").Visible = True
    Worksheets("ゲームスタート").Select
End Sub
```
1. Bookが閉じるときにsaveせずに閉じる
2. Bookが開いたら、ゲームスタートシートを表示する。

```vb:基本設定(標準モジュール)
Public Gname As String
Public Time As Integer
Public Runtime As Integer
Public ATtime As Integer
Public Const Mypass As String = ""
```

変数を設定
1. Gname: 主人公の名前
2. Time: システム全体のフラグ
3. Runtime: 逃げるコマンド (スライム)、じゅもんコマンド (はぐれメタル)を押した回数
4. ATtime: たたかうコマンドを押した回数 (はぐれメタルのみ)
5. Mypass: シート保護用のpassを設定

```vb:基本設定(標準モジュール)
Sub 結合(範囲 As Range, 値 As String, フォントサイズ As Integer, 字色 As Integer, 範囲色 As Integer)
    範囲.Merge
    With 範囲
        .Value = 値
        .Font.Name = "メイリオ"
        .Font.Size = フォントサイズ
        .Font.ColorIndex = 字色
        .Interior.ColorIndex = 範囲色
    End With
End Sub
```
セルの結合を設定
1. 結合する範囲、結合後の値、フォントサイズ、フォントの色、背景色を引数に指定。
2. 引数から範囲を結合して、値を表示する。 

```vb:基本設定(標準モジュール)
Sub 結合解除(範囲 As Range, 値 As String, フォントサイズ As Integer, 字色 As Integer, 範囲色 As Integer)
    範囲.UnMerge
    With 範囲
        .Value = 値
        .Font.Name = "メイリオ"
        .Font.Size = フォントサイズ
        .Font.ColorIndex = 字色
        .Interior.ColorIndex = 範囲色
    End With
End Sub
```
セルの結合解除を設定

```vb:基本設定(標準モジュール)
Sub コメント(範囲 As Range, コメント As String, サイズ As Integer)
    With 範囲
        .Value = コメント
        .Font.Name = "メイリオ"
        .Font.ColorIndex = 2
        .Font.Size = サイズ
    End With
End Sub
```
コメント出力を設定
1. コメントを設定する範囲、コメント内容、フォントサイズを引数に指定。
2. 引数から、コメントを出力。 

```vb:基本設定(標準モジュール)
Sub フィールドコピー(元 As Range, 先 As Range)
    元.Copy
    先.PasteSpecial Paste:=xlPasteAll
    Range("A1").Select
    Application.CutCopyMode = False
End Sub
```
画像の貼り換え（アニメーション）を設定
1. コピー元の範囲、貼り付け先の範囲を指定。
2. 画像をコピーして、貼り付け

## ゲームスタート
### Excelシート設定
ゲームスタートシート
B4：ゲームをはじめます
B5：ボタンをクリックしてください
B6:E9：ゲーム開始ボタン
G6:I9：アニメーションボタン
![開始.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683664/4f0ec42b-f5cc-ad54-5aec-a7f1d8bdf793.png)


### VBA
```vb:基本設定(標準モジュール)
Sub 開始()
    Worksheets("名前").Visible = True
    Worksheets("名前").Select
End Sub

Sub アニメーション()
    Worksheets("動作確認").Visible = True
    Worksheets("動作確認").Select
    ActiveSheet.Unprotect Mypass
    フィールドコピー Range("はぐれ2"), Range("確認")
    Range("A1").Select
End Sub
```

```vb:Sheet(ゲームスタート)
Private Sub Worksheet_Deactivate()
    Worksheets("ゲームスタート").Visible = False
End Sub
```
1. 開始ボタンがクリックされると、名前シートを表示する。
2. アニメーションボタンがクリックされると、動作確認シートを表示する。
3. ゲームスタートシートから離れると、ゲームスタートシートを隠す。


## 勇者の名前を選択
![名前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683664/4946d9b6-5fa7-2137-cffd-c00ac8a8131b.png)

### VBA
```vb:Sheet(名前)
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect Mypass
    Cells.Interior.Color = vbBlack
    名前
    Time = 1
End Sub
```
1. 名前シートが表示されたら、画面の保護を解除
2. Mypassでシートのロックを解除。
3. シート全体の背景色を黒に。
4. 名前モジュールを呼び出す。

```vb:基本設定(標準モジュール)
Sub 名前()
    コメント Range("B7"), "あなたのなまえをおしえてください", 20
    Range("B8:E8").Merge
    With Range("B8")
        .Select
        .Value = ""
        .Interior.Color = vbWhite
        .Font.Name = "メイリオ"
        .Font.Size = 16
        .Font.Color = vbBlack
        .Validation.Delete
        .Validation.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
        .Validation.IMEMode = xlIMEModeKatakana
    End With
    SendKeys "{F2}"
End Sub
```
1. コメントを表示
2. 名前入力欄を設定(B8:E8)
3. SendKeys "{F2}"で名前入力欄を入力受付状態にする。

```vb:Sheet(名前)
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Range("B8").Address Then
        If Time <> 1 Then Exit Sub
        If Target.Value = "" Then
            With Range("B6")
                .Value = "もういちどききます"
                .Font.Name = "メイリオ"
                .Font.Color = vbWhite
                .Font.Size = 16
            End With
            Range("B8").Select
        Else
            Gname = Range("B8").Value
            Range("B6").Value = ""
            With Range("B7")
                .Value = "あなたのなまえは「" & Gname & "」でよろしいですか？"
                 .Font.Name = "メイリオ"
                .Font.Color = vbWhite
                .Font.Size = 20
            End With
            Range("B8:E9").Interior.Color = vbBlack
            Range("B8").Validation.Delete
            Range("B8:E9").UnMerge
            結合 Range("B10:C11"), "は　い", 20, 6, 46
            Range("B10:C11").Font.Bold = True
            Range("B10").HorizontalAlignment = xlCenter
            結合 Range("E10:F11"), "いいえ", 20, 6, 46
            Range("E10:F11").Font.Bold = True
            Range("E10").HorizontalAlignment = xlCenter
            Range("A1").Select
        End If
    End If
End Sub
```
1. 名前が空欄なら、名前の入力を受け付ける。
2. 名前が入力されていれば、入力を名前変数Gnameに格納し、表示。
3. 名前入力欄を削除し、はい、いいえを表示させる。

```vb:Sheet(名前)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = Range("B10:C11").Address Then
        If Time = 1 Then
            結合 Range("B10:C11"), "スライム", 20, 6, 46
            結合 Range("E10:F11"), "はぐれメタル", 16, 6, 46
            コメント Range("B7"), "どちらとたたかいますか?", 20
            Range("A1").Select
            Time = Time + 1
        Else
            Worksheets("スライム").Visible = True
            Worksheets("スライム").Select
        End If
    ElseIf Target.Address = Range("E10:F11").Address Then
        If Time = 1 Then
            With Range("B6")
                .Value = "もういちどききます"
                .Font.Name = "メイリオ"
                .Font.Color = vbWhite
                .Font.Size = 16
            End With
            名前
            結合解除 Range("B10:C11"), "", 20, 1, 1
            結合解除 Range("E10:F11"), "", 20, 1, 1
        Else
            Worksheets("はぐれメタル").Visible = True
            Worksheets("はぐれメタル").Select
        End If
    End If
End Sub
```
1. はいが選択されたとき、スライムとはぐれメタルの選択を表示。
2. いいえが選択されたとき、名前の受付に戻る
3. スライムが選択されたらスライムシートに、はぐれメタルがせんたくされたらはぐれメタルシートに移動。

```vb:Sheet(名前)
Private Sub Worksheet_Deactivate()
    Cells.Clear
    ActiveSheet.Protect Mypass
    Worksheets("名前").Visible = False
End Sub
```
1. 名前シートから移動したら名前シートを非表示にし、Mypassでロックする。

## 対スライム
### VBA

```vb:Sheet(スライム)
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
```

1. sleep関数が使えるようにする

```vb:スライム(標準モジュール)
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
```

1. 標準モジュールでもsleep関数が使えるようにする

```vb:スライム(標準モジュール)
Sub スラコメ(コメ範囲 As Range, コメ As String, コメ色 As Integer, 範囲色 As Integer)
    コメ範囲.Value = コメ
    With コメ範囲
        .Value = コメ
        .Font.ColorIndex = コメ色
        .Interior.ColorIndex = 範囲色
    End With
End Sub
```
1. スライムのコメント表示用

```vb:スライム(標準モジュール)
Sub スラ基準()
    フィールドコピー Range("スライム1"), Range("スライム基準")
End Sub
```
1. スライムの基準画像を表示

```vb:スライム(標準モジュール)
Sub コマンドコピー()      
    Range("コマンド").Copy
    Range("スラ＿コマンド").PasteSpecial Paste:=xlPasteAll
    CutCopyMode = False
    Range("スライム2").Copy
    Range("スライム基準").PasteSpecial Paste:=xlPasteAll
    Range("スライムコメント3").Font.ColorIndex = 2
    Range("スライムコメント3").Interior.ColorIndex = 1
    Range("DG10").Font.ColorIndex = 6
    Range("DG10").Interior.ColorIndex = 46
    Range("DG19").Font.ColorIndex = 6
    Range("DG19").Interior.ColorIndex = 46
    Range("DG28").Font.ColorIndex = 6
    Range("DG28").Interior.ColorIndex = 46
    Range("DG37").Font.ColorIndex = 6
    Range("DG37").Interior.ColorIndex = 46
    Application.CutCopyMode = False
    Range("A1").Select
End Sub
```
1. たたかう、じゅもん、とくぎ、にげるのコマンドを表示

```vb:Sheet(スライム)
Private Sub Worksheet_Activate()
    ActiveSheet.Unprotect Mypass
    Application.EnableEvents = False
    Runtime = 1
    Time = 1
    Cells.ClearContents
    Range("CZ1:HA66").ClearFormats
    Range("CZ1:HA66").Interior.ColorIndex = 1
    Range("スライムコメント3").Interior.ColorIndex = 1
    スラ基準
    スラコメ Range("スライムコメント1"), "スライムがあらわれた！！", 2, 1
    Sleep 700
    スラコメ Range("スライムコメント2"), "「ぼくはわるいスライムじゃないよ」", 2, 1
    Sleep 700
    スラコメ Range("スライムコメント3"), Gname & "はどうする？", 2, 1
    Sleep 700
    コマンドコピー
    Range("A1").Select
    Application.EnableEvents = True
End Sub
```
1. スライムシートが表示されたら、初期画面を表示
2. ↓セル範囲名と初期画面はこんな感じ　

![スライム.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683664/09f4949a-2da4-4a42-58c2-8abfe7ee09b6.png)

```vb:Sheet(スライム)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Time = 1 Then
        If Target.Address = Range("DG10:EG17").Address Then
            スラたたかう
            Time = 2
        ElseIf Target.Address = Range("DG19:EG26").Address Then
            スラじゅもん
            Time = 2
        ElseIf Target.Address = Range("DG28:EG35").Address Then
            スラとくぎ
            Time = 2
        ElseIf Target.Address = Range("DG37:EG44").Address Then
            If Runtime = 1 Then
                スラにげる1
            ElseIf Runtime = 2 Then
                スラにげる2
            ElseIf Runtime = 3 Then
                スラにげる3
                Time = 2
            End If
        End If
    ElseIf Time = 2 Then
        If Target.Address = Range("L72:CN76").Address Then
            Worksheets("ゲームスタート").Visible = True
            Worksheets("ゲームスタート").Select
        End If
    End If
End Sub
```
1. 各コマンドを押したときの処理。
2. Time = 2 の時は最終的に「GAME OVER」か「GAME CLEAR」の状態になるので、スライムコメント3をクリックするとゲーム開始に戻る。
3. にげるは3回クリック可能、クリックした回数に応じて処理が変わる。

```vb:スライム(標準モジュール)
Sub スラたたかう()
    スラコメ Range("DG19:EG26"), "", 2, 1
    スラコメ Range("DG28:EG35"), "", 2, 1
    スラコメ Range("DG37:EG44"), "", 2, 1
    スラコメ Range("スライムコメント1"), Gname & "のこうげき", 2, 1
    スラコメ Range("スライムコメント2"), "", 2, 1
    スラコメ Range("スライムコメント3"), "", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント2"), "「なぐるなんて、ひどいじゃないか」", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント3"), "「しゃくねつ！！」", 2, 1
    フィールドコピー Range("スライム3"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("スライム9"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("スライム10"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("スライム8"), Range("スライム基準")
    Sleep 1000
    スラコメ Range("スライムコメント1"), "「なぐるなんて、ひどいじゃないか」", 2, 1
    スラコメ Range("スライムコメント2"), "「しゃくねつ！！」", 2, 1
    スラコメ Range("スライムコメント3"), "はげしいほのおが" & Gname & " を焼き尽くす", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント1"), "「しゃくねつ！！」", 2, 1
    スラコメ Range("スライムコメント2"), "はげしいほのおが" & Gname & " を焼き尽くす", 2, 1
    スラコメ Range("スライムコメント3"), Gname & "は死んでしまった", 2, 1
   Sleep 1000
    スラコメ Range("スライムコメント1"), "はげしいほのおが" & Gname & " を焼き尽くす", 2, 1
    スラコメ Range("スライムコメント2"), Gname & "は死んでしまった", 2, 1
    スラコメ Range("スライムコメント3"), "Ｇａｍｅ　Ｏｖｅｒ", 3, 2
End Sub
```
1. たたかうと選択したときの処理。
2. フィールドコピーで画像を変更してアニメにしつつ、スラコメでコメントを切り替える。
3. しゃくねつで反撃されて「GAME OVER」。
  
```vb:スライム(標準モジュール)
Sub スラじゅもん()
    スラコメ Range("DG10:EG17"), "", 2, 1
    スラコメ Range("DG28:EG35"), "", 2, 1
    スラコメ Range("DG37:EG44"), "", 2, 1
    スラコメ Range("スライムコメント1"), Gname & "はギガデインをとなえた！", 2, 1
    スラコメ Range("スライムコメント2"), "", 2, 1
    スラコメ Range("スライムコメント3"), "", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント2"), "はげしいらいげきがスライムをおそう", 2, 1
    フィールドコピー Range("スライム11"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("スライム12"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("スライム13"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("スライム14"), Range("スライム基準")
    Sleep 1000
    スラコメ Range("スライムコメント3"), "スライムをたおした！", 2, 1
    フィールドコピー Range("はぐれ2"), Range("スライム基準")
    Sleep 1000
    スラコメ Range("スライムコメント1"), "はげしいらいげきがスライムをおそう", 2, 1
    スラコメ Range("スライムコメント2"), "スライムをたおした！", 2, 1
    スラコメ Range("スライムコメント3"), "「ふはは、よくぞわたしがまおうだとみやぶった」", 2, 1
    Sleep 600
    フィールドコピー Range("まおう2"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("まおう3"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("まおう1"), Range("スライム基準")
    スラコメ Range("スライムコメント1"), "スライムをたおした！", 2, 1
    スラコメ Range("スライムコメント2"), "「ふはは、よくぞわたしがまおうだとみやぶった」", 2, 1
    スラコメ Range("スライムコメント3"), "なんと、まおうがあらわれた！", 2, 1
    Sleep 750
    スラコメ Range("スライムコメント1"), "「ふはは、よくぞわたしがまおうだとみやぶった」", 2, 1
    スラコメ Range("スライムコメント2"), "なんと、まおうがあらわれた！", 2, 1
    スラコメ Range("スライムコメント3"), Gname & "のれんぞくこうげき！！", 2, 1
    Sleep 750
    スラコメ Range("スライムコメント1"), "ふはは、よくぞわたしがまおうだとみやぶっ", 2, 1
    スラコメ Range("スライムコメント2"), Gname & "のれんぞくこうげき！！", 2, 1
    スラコメ Range("スライムコメント3"), Gname & "はメラガイアーをとなえた", 2, 1
    フィールドコピー Range("まおう4"), Range("スライム基準 ")
    Sleep 600
    フィールドコピー Range("まおう5"), Range("スライム基準")
    Sleep 600
    スラコメ Range("スライムコメント1"), Gname & "のれんぞくこうげき！！", 2, 1
    スラコメ Range("スライムコメント2"), Gname & "はメラガイアーをとなえた", 2, 1
    スラコメ Range("スライムコメント3"), "えっ、えっ？", 2, 1
    フィールドコピー Range("まおう6"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("まおう7"), Range("スライム基準")
    Sleep 750
    スラコメ Range("スライムコメント1"), Gname & "はメラガイアーをとなえた", 2, 1
    スラコメ Range("スライムコメント2"), "えっ、えっ？", 2, 1
    スラコメ Range("スライムコメント3"), Gname & "はメドローアをとなえた", 2, 1
    フィールドコピー Range("まおう8"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("まおう9"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("まおう10"), Range("スライム基準")
    Sleep 600
    スラコメ Range("スライムコメント1"), "えっ、えっ？", 2, 1
    スラコメ Range("スライムコメント2"), Gname & "はメドローアをとなえた", 2, 1
    スラコメ Range("スライムコメント3"), "ちょ、ちょ、待っ、", 2, 1
    フィールドコピー Range("まおう11"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("まおう12"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("まおう13"), Range("スライム基準")
    Sleep 750
    スラコメ Range("スライムコメント1"), Gname & "はメドローアをとなえた", 2, 1
    スラコメ Range("スライムコメント2"), "ちょ、ちょ、待っ、", 2, 1
    スラコメ Range("スライムコメント3"), Gname & "はマダンテをとなえた", 2, 1
    Sleep 600
    フィールドコピー Range("まおう14"), Range("スライム基準")
    Sleep 600
    フィールドコピー Range("まおう15"), Range("スライム基準")
    Sleep 750
    スラコメ Range("スライムコメント1"), "ちょ、ちょ、待っ、", 2, 1
    スラコメ Range("スライムコメント2"), Gname & "はマダンテをとなえた", 2, 1
    スラコメ Range("スライムコメント3"), "ぎゃーっっっ", 2, 1
    フィールドコピー Range("まおう16"), Range("スライム基準")
    Sleep 1000
    スラコメ Range("スライムコメント1"), Gname & "はマダンテをとなえた", 2, 1
    スラコメ Range("スライムコメント2"), "ぎゃーっっっ", 2, 1
    スラコメ Range("スライムコメント3"), Gname & "はまおう！？をたおした", 2, 1
    フィールドコピー Range("はぐれ2"), Range("スライム基準")
    Sleep 600
    スラコメ Range("スライムコメント1"), "ぎゃーっっっ", 2, 1
    スラコメ Range("スライムコメント2"), Gname & "はまおう！？をたおした", 2, 1
    スラコメ Range("スライムコメント3"), "Ｇａｍｅ　Ｃｌｅａｒ！", 3, 2
End Sub
```
1. じゅもんを唱えた時の処理。
2. スライムに化けた魔王が出てくるが、 無視して呪文を続けて魔王を倒す「GAME CLEAR」。

```vb:スライム(標準モジュール)
Sub スラとくぎ()
    スラコメ Range("DG10:EG17"), "", 2, 1
    スラコメ Range("DG19:EG26"), "", 2, 1
    スラコメ Range("DG37:EG44"), "", 2, 1
    スラコメ Range("スライムコメント1"), Gname & "はまじんぎりをはなった！", 2, 1
    スラコメ Range("スライムコメント2"), "", 2, 1
    スラコメ Range("スライムコメント3"), "", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント2"), "かいしんのいちげき", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント3"), "スライムにちめいしょうをあたえた", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント1"), "かいしんのいちげき", 2, 1
    スラコメ Range("スライムコメント2"), "スライムにちめいしょうをあたえた", 2, 1
    スラコメ Range("スライムコメント3"), "「ぼく、わるくないのに...」", 2, 1
    フィールドコピー Range("スライム4"), Range("スライム基準")
    Sleep 1000
    スラコメ Range("スライムコメント1"), "スライムにちめいしょうをあたえた", 2, 1
    スラコメ Range("スライムコメント2"), "「ぼく、わるくないのに...」", 2, 1
    スラコメ Range("スライムコメント3"), Gname & "はスライムをたおした", 2, 1
    フィールドコピー Range("はぐれ2"), Range("スライム基準")
    Sleep 1000
    フィールドコピー Range("スライム15"), Range("スライム基準")
    スラコメ Range("スライムコメント1"), "「ぼく、わるくないのに...」", 2, 1
    スラコメ Range("スライムコメント2"), Gname & "はスライムをたおした", 2, 1
    スラコメ Range("スライムコメント3"), Gname & "はざいあくかんをてにいれた", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント1"), Gname & "はスライムをたおした", 2, 1
    スラコメ Range("スライムコメント2"), Gname & "はざいあくかんをてにいれた", 2, 1
    スラコメ Range("スライムコメント3"), "Ｇａｍｅ　Ｏｖｅｒ", 3, 2
End Sub
```
1. 特技を選択したときの処理。
2. 悪いスライムじゃないスライムをまじんぎりで倒したため、罪悪感をGet「GAME OVER」。

```vb:スライム(標準モジュール)
Sub スラにげる1()
    スラコメ Range("DG10:EG17"), "", 2, 1
    スラコメ Range("DG19:EG26"), "", 2, 1
    スラコメ Range("DG28:EG35"), "", 2, 1
    スラコメ Range("スライムコメント1"), Gname & "はにげようとした", 2, 1
    スラコメ Range("スライムコメント2"), "", 2, 1
    スラコメ Range("スライムコメント3"), "", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント2"), "てんのこえがきこえる", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント3"), Gname & "よ、あなたはゆうしゃです。にげてはいけません", 2, 1
    コマンドコピー
    フィールドコピー Range("スライム6"), Range("スライム基準")
    Sleep 1000
    Runtime = 2
End Sub
Sub スラにげる2()
    スラコメ Range("DG10:EG17"), "", 2, 1
    スラコメ Range("DG19:EG26"), "", 2, 1
    スラコメ Range("DG28:EG35"), "", 2, 1
    スラコメ Range("スライムコメント1"), Gname & "はふたたびにげようとした", 2, 1
    スラコメ Range("スライムコメント2"), "", 2, 1
    スラコメ Range("スライムコメント3"), "", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント2"), "てんのこえがきこえる", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント3"), Gname & "よ、たちむかいなさい！", 2, 1
    Range("A1").Select
    Sleep 1000
    コマンドコピー
    フィールドコピー Range("スライム7"), Range("スライム基準")
    Runtime = 3
End Sub
Sub スラにげる3()
    スラコメ Range("DG10:EG17"), "", 2, 1
    スラコメ Range("DG19:EG26"), "", 2, 1
    スラコメ Range("DG28:EG35"), "", 2, 1
    スラコメ Range("スライムコメント1"), Gname & "はさらににげようとした", 2, 1
    スラコメ Range("スライムコメント2"), "", 2, 1
    スラコメ Range("スライムコメント3"), "", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント2"), "てんのこえがきこえる", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント3"), "..." & Gname & "、あなたはゆうしゃしっかくです", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント1"), "てんのこえがきこえる", 2, 1
    スラコメ Range("スライムコメント2"), "..." & Gname & "、あなたはゆうしゃしっかくです", 2, 1
    スラコメ Range("スライムコメント3"), "てんのこえはザラキーマをとなえた", 2, 1
    フィールドコピー Range("スライム5"), Range("スライム基準")
    Sleep 1000
    スラコメ Range("スライムコメント1"), "..." & Gname & "、あなたはゆうしゃしっかくです", 2, 1
    スラコメ Range("スライムコメント2"), "てんのこえはザラキーマをとなえた", 2, 1
    スラコメ Range("スライムコメント3"), Gname & "は死んでしまった", 2, 1
    Sleep 1000
    スラコメ Range("スライムコメント1"), "てんのこえはザラキーマをとなえた", 2, 1
    スラコメ Range("スライムコメント2"), Gname & "は死んでしまった", 2, 1
    スラコメ Range("スライムコメント3"), "Ｇａｍｅ　Ｏｖｅｒ", 3, 2
End Sub
```
1. にげたときの処理。
2. スライムを前に逃げようとする主人公をてんのこえが引き留める。
3. 3回にげると、てんのこえに勇者失格といわれて、ザラキーマを受ける「GAME OVER」。
 
```vb:Sheet(スライム)
Private Sub Worksheet_Deactivate()
    ActiveSheet.Protect Mypass
    Worksheets("スライム").Visible = False
End Sub
```
1. スライムシートから移動したら、スライムシートを非表示にする

## 対はぐれメタル
基本はスライムと一緒
### VBA
```vb:はぐれメタル(標準モジュール)
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
Sub はぐ基準()
    フィールドコピー Range("はぐれ1"), Range("はぐれ基準")
End Sub
```
1. 初期画面を表示

```vb:はぐれメタル(標準モジュール)
Sub はぐコメ(コメ範囲 As Range, コメ As String, コメ色 As Integer, 範囲色 As Integer)
    コメ範囲.Value = コメ
    With コメ範囲
        .Value = コメ
        .Font.ColorIndex = コメ色
        .Interior.ColorIndex = 範囲色
    End With
End Sub
```
1. 初期コメントを表示 

```vb:はぐれメタル(標準モジュール)
Sub はぐコマコピー()
            Range("コマンド").Copy
            Range("はぐれ＿コマンド").PasteSpecial Paste:=xlPasteAll
            CutCopyMode = False
            Range("はぐれコメント3").Font.ColorIndex = 2
            Range("はぐれコメント3").Interior.ColorIndex = 1
            Range("DG10").Font.ColorIndex = 6
            Range("DG10").Interior.ColorIndex = 46
            Range("DG19").Font.ColorIndex = 6
            Range("DG19").Interior.ColorIndex = 46
            Range("DG28").Font.ColorIndex = 6
            Range("DG28").Interior.ColorIndex = 46
            Range("DG37").Font.ColorIndex = 6
            Range("DG37").Interior.ColorIndex = 46
            Application.CutCopyMode = False
            Range("A1").Select
End Sub
```
1. たたかう、じゅもん、とくぎ、にげるのコマンドを表示

```vb:Sheet(はぐれメタル)
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
Private Sub Worksheet_Activate()
    ActiveSheet.Unprotect Mypass
    Application.EnableEvents = False
    ATtime = 1
    Runtime = 1
    Time = 1
    Cells.ClearContents
    Range("CZ1:HA66").ClearFormats
    Range("CZ1:HA66").Interior.ColorIndex = 1
    Range("はぐれコメント3").Interior.ColorIndex = 1
    はぐ基準
    はぐコメ Range("はぐれコメント1"), "はぐれメタルがあらわれた！！", 2, 1
    Sleep 700
    はぐコメ Range("はぐれコメント2"), "はぐれメタルはおどろいている", 2, 1
    Sleep 700
    はぐコメ Range("はぐれコメント3"), Gname & "はどうする？", 2, 1
    Sleep 700
    はぐコマコピー
    Range("A1").Select
    Application.EnableEvents = True
End Sub
```
1. はぐれメタルシートに移動したときに、初期画面を表示する。
2. ↓こんな感じ
![はぐれ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683664/78c68395-033a-5602-9bc6-864d678a2bb9.png)

```vb:Sheet(はぐれメタル)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Time = 1 Then
        If Target.Address = Range("DG10:EG17").Address Then
            If Runtime = 1 Then
                If ATtime = 1 Then
                    はぐれたたかう
                ElseIf ATtime = 2 Then
                    はぐれたたかう2
                ElseIf ATtime = 3 Then
                    はぐれたたかう3
                    Time = 2
                End If
            ElseIf Runtime = 2 Then
                はぐれたたかう4
                Time = 2
            End If
        ElseIf Target.Address = Range("DG19:EG26").Address Then
            If Runtime = 1 Then
                はぐれじゅもん1
            ElseIf Runtime = 2 Then
                はぐれじゅもん2
                Time = 2
            End If
        ElseIf Target.Address = Range("DG28:EG35").Address Then
            はぐれとくぎ
            Time = 2
        ElseIf Target.Address = Range("DG37:EG44").Address Then
            はぐれにげる
        End If
    ElseIf Time = 2 Then
        If Target.Address = Range("L72:CN76").Address Then
            Worksheets("ゲームスタート").Visible = True
            Worksheets("ゲームスタート").Select
        End If
    End If
End Sub
```
1. たたかうは3回選択可能。
2. にげるは何回押しても逃げられない。 
3. マダンテを受けると、すべての処理が変更するように設定。 

```vb:はぐれメタル(標準モジュール)
Sub はぐれたたかう()
    はぐコメ Range("DG19:EG26"), "", 2, 1
    はぐコメ Range("DG28:EG35"), "", 2, 1
    はぐコメ Range("DG37:EG44"), "", 2, 1
    はぐコメ Range("はぐれコメント1"), Gname & "のこうげき", 2, 1
    はぐコメ Range("はぐれコメント2"), "", 2, 1
    はぐコメ Range("はぐれコメント3"), "", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント2"), "ミス、ダメージをあたえられない", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント3"), "はぐれメタルはほくそえんでいる", 2, 1
    フィールドコピー Range("はぐれ11"), Range("はぐれ基準")
    はぐコマコピー
    ATtime = 2
End Sub
Sub はぐれたたかう2()
    はぐコメ Range("DG19:EG26"), "", 2, 1
    はぐコメ Range("DG28:EG35"), "", 2, 1
    はぐコメ Range("DG37:EG44"), "", 2, 1
    はぐコメ Range("はぐれコメント1"), Gname & "のこうげき", 2, 1
    はぐコメ Range("はぐれコメント2"), "", 2, 1
    はぐコメ Range("はぐれコメント3"), "", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント2"), "ミス、ダメージをあたえられない", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント3"), "はぐれメタルは" & Gname & "をみくだしている", 2, 1
    フィールドコピー Range("はぐれ10"), Range("はぐれ基準")
    はぐコマコピー
    ATtime = 3
End Sub
Sub はぐれたたかう3()
    はぐコメ Range("DG19:EG26"), "", 2, 1
    はぐコメ Range("DG28:EG35"), "", 2, 1
    はぐコメ Range("DG37:EG44"), "", 2, 1
    はぐコメ Range("はぐれコメント1"), Gname & "のこうげき", 2, 1
    はぐコメ Range("はぐれコメント2"), "", 2, 1
    はぐコメ Range("はぐれコメント3"), "", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント2"), "かいしんのいちげき", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント3"), "はぐれメタルをたおした！", 2, 1
    Sleep 1000
    フィールドコピー Range("はぐれ2"), Range("はぐれ基準")
    はぐコメ Range("はぐれコメント1"), "かいしんのいちげき！", 2, 1
    はぐコメ Range("はぐれコメント2"), "はぐれメタルをたおした", 2, 1
    はぐコメ Range("はぐれコメント3"), "Ｇａｍｅ　Ｃｌｅａｒ！", 3, 2
End Sub
Sub はぐれたたかう4()
    はぐコメ Range("DG19:EG26"), "", 2, 1
    はぐコメ Range("DG28:EG35"), "", 2, 1
    はぐコメ Range("DG37:EG44"), "", 2, 1
    はぐコメ Range("はぐれコメント1"), Gname & "のこうげき", 2, 1
    はぐコメ Range("はぐれコメント2"), "", 2, 1
    はぐコメ Range("はぐれコメント3"), "", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント2"), "しかし、ひんしの" & Gname & "は", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント3"), "からだにちからがはいらない", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント1"), "しかし、ひんしの" & Gname & "は", 2, 1
    はぐコメ Range("はぐれコメント2"), "からだにちからがはいらない", 2, 1
    はぐコメ Range("はぐれコメント3"), Gname & "はそのばにたおれこみ", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント1"), "からだにちからがはいらない", 2, 1
    はぐコメ Range("はぐれコメント2"), Gname & "はそのばにたおれこみ", 2, 1
    はぐコメ Range("はぐれコメント3"), "そのままちからつきてしまった", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント1"), Gname & "はそのばにたおれこみ", 2, 1
    はぐコメ Range("はぐれコメント2"), "そのままちからつきてしまった", 2, 1
    はぐコメ Range("はぐれコメント3"), "Ｇａｍｅ　Ｏｖｅｒ", 3, 2
End Sub
```
1. たたかうを選択したときの処理。
2. ダメージを与えられない主人公を見下すはぐれメタルに、いらついて3回目に会心の一撃「GAME CLEAR」。
3. マダンテで瀕死のダメージを受けると、行動するために倒れてしまう「GAME OVER」

```vb:はぐれメタル(標準モジュール)
Sub はぐれじゅもん1()
    はぐコメ Range("DG10:EG17"), "", 2, 1
    はぐコメ Range("DG28:EG35"), "", 2, 1
    はぐコメ Range("DG37:EG44"), "", 2, 1
    はぐコメ Range("はぐれコメント1"), Gname & "はギガデインをとなえた", 2, 1
    はぐコメ Range("はぐれコメント2"), "", 2, 1
    はぐコメ Range("はぐれコメント3"), "", 2, 1
    フィールドコピー Range("はぐれ4"), Range("はぐれ基準")
    Sleep 1000
    フィールドコピー Range("はぐれ5"), Range("はぐれ基準")
    Sleep 1000
    フィールドコピー Range("はぐれ6"), Range("はぐれ基準")
    Sleep 1000
    フィールドコピー Range("はぐれ7"), Range("はぐれ基準")
    Sleep 1000
    はぐコメ Range("はぐれコメント2"), "はぐれメタルにはこうかがない", 2, 1
    フィールドコピー Range("はぐれ1"), Range("はぐれ基準")
    Sleep 1000
    はぐコメ Range("はぐれコメント3"), "はぐれメタルはおびえている", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント1"), "はぐれメタルにはこうかがない", 2, 1
    はぐコメ Range("はぐれコメント2"), "はぐれメタルはおびえている", 2, 1
    はぐコメ Range("はぐれコメント3"), "はぐれメタルはマダンテをとなえた", 2, 1
    フィールドコピー Range("はぐれ3"), Range("はぐれ基準")
    Sleep 1000
    フィールドコピー Range("はぐれ8"), Range("はぐれ基準")
    Sleep 1000
    フィールドコピー Range("はぐれ9"), Range("はぐれ基準")
    Sleep 1000
    はぐコメ Range("はぐれコメント1"), "はぐれメタルはおびえている", 2, 1
    はぐコメ Range("はぐれコメント2"), "はぐれメタルはマダンテをとなえた", 2, 1
    はぐコメ Range("はぐれコメント3"), Gname & "はひんしのダメージをうけた", 2, 1
    Sleep 1000
    フィールドコピー Range("はぐれ1"), Range("はぐれ基準")
    はぐコマコピー
    Runtime = 2
End Sub
Sub はぐれじゅもん2()
    はぐコメ Range("DG10:EG17"), "", 2, 1
    はぐコメ Range("DG28:EG35"), "", 2, 1
    はぐコメ Range("DG37:EG44"), "", 2, 1
    はぐコメ Range("はぐれコメント1"), Gname & "はかくごをきめた", 2, 1
    はぐコメ Range("はぐれコメント2"), "", 2, 1
    はぐコメ Range("はぐれコメント3"), "", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント2"), Gname & "はメガンテをとなえた", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント3"), "はぐれメタルはくだけちった", 2, 1
    フィールドコピー Range("はぐれ2"), Range("はぐれ基準")
    Sleep 1000
    はぐコメ Range("はぐれコメント1"), Gname & "はメガンテをとなえた", 2, 1
    はぐコメ Range("はぐれコメント2"), "はぐれメタルはくだけちった", 2, 1
    はぐコメ Range("はぐれコメント3"), Gname & "は、くだけちった", 2, 1
    Sleep 1000
    はぐコメ Range("はぐれコメント1"), "はぐれメタルはくだけちった", 2, 1
    はぐコメ Range("はぐれコメント2"), Gname & "は、くだけちった", 2, 1
    はぐコメ Range("はぐれコメント3"), "Ｇａｍｅ　Ｏｖｅｒ", 3, 2
End Sub
```
1. はぐれメタルにじゅもんで攻撃。
2. びっくりしたはぐれメタルはマダンテで反撃。
3. 瀕死のダメージを負った主人公がメガンテで自爆「GAME OVER」。 

```vb:はぐれメタル(標準モジュール)
Sub はぐれとくぎ()
    はぐコメ Range("DG10:EG17"), "", 2, 1
    はぐコメ Range("DG19:EG26"), "", 2, 1
    はぐコメ Range("DG37:EG44"), "", 2, 1
    はぐコメ Range("はぐれコメント1"), Gname & "はまじんぎりをはなった！", 2, 1
    はぐコメ Range("はぐれコメント2"), "", 2, 1
    はぐコメ Range("はぐれコメント3"), "", 2, 1
    Sleep 1000
    If Runtime = 1 Then
        はぐコメ Range("はぐれコメント2"), "ミス！　ダメージをあたえられない", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント3"), "はぐれメタルはおびえている", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント1"), "ミス！　ダメージをあたえられない", 2, 1
        はぐコメ Range("はぐれコメント2"), "はぐれメタルはおびえている", 2, 1
        はぐコメ Range("はぐれコメント3"), "はぐれメタルはにげだした！", 2, 1
        フィールドコピー Range("はぐれ2"), Range("はぐれ基準")
        Sleep 1000
        はぐコメ Range("はぐれコメント1"), "はぐれメタルはおびえている", 2, 1
        はぐコメ Range("はぐれコメント2"), "はぐれメタルはにげだした！", 2, 1
        はぐコメ Range("はぐれコメント3"), "Ｇａｍｅ　Ｏｖｅｒ", 3, 2
    ElseIf Runtime = 2 Then
        はぐコメ Range("はぐれコメント2"), "しかし、ひんしの" & Gname & "は", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント3"), "からだにちからがはいらない", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント1"), "しかし、ひんしの" & Gname & "は", 2, 1
        はぐコメ Range("はぐれコメント2"), "からだにちからがはいらない", 2, 1
        はぐコメ Range("はぐれコメント3"), Gname & "はそのばにたおれこみ", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント1"), "からだにちからがはいらない", 2, 1
        はぐコメ Range("はぐれコメント2"), Gname & "はそのばにたおれこみ", 2, 1
        はぐコメ Range("はぐれコメント3"), "そのままちからつきてしまった", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント1"), Gname & "はそのばにたおれこみ", 2, 1
        はぐコメ Range("はぐれコメント2"), "そのままちからつきてしまった", 2, 1
        はぐコメ Range("はぐれコメント3"), "Ｇａｍｅ　Ｏｖｅｒ", 3, 2
    End If
End Sub
```
1. はぐれメタルにまじんぎりで攻撃。
2. 躱されて逃げられる「GAME OVER」。
3. 先にマダンテで瀕死のダメージを受けていたら、倒れて力尽きる「GAME OVER」。

```vb:はぐれメタル(標準モジュール)
Sub はぐれにげる()
    はぐコメ Range("DG10:EG17"), "", 2, 1
    はぐコメ Range("DG19:EG26"), "", 2, 1
    はぐコメ Range("DG28:EG35"), "", 2, 1
    If Runtime = 1 Then
        はぐコメ Range("はぐれコメント1"), "はぐれメタルからにげるなんて", 2, 1
        はぐコメ Range("はぐれコメント2"), "とんでもない！！", 2, 1
        はぐコメ Range("はぐれコメント3"), "", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント1"), Gname & "はどうする？", 2, 1
        はぐコメ Range("はぐれコメント2"), "", 2, 1
        はぐコマコピー
    ElseIf Runtime = 2 Then
        はぐコメ Range("はぐれコメント1"), Gname & "は、にげようとした", 2, 1
        はぐコメ Range("はぐれコメント2"), "", 2, 1
        はぐコメ Range("はぐれコメント3"), "", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント2"), "しかし、ひんしの" & Gname & "は", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント3"), "からだにちからがはいらない", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント1"), "しかし、ひんしの" & Gname & "は", 2, 1
        はぐコメ Range("はぐれコメント2"), "からだにちからがはいらない", 2, 1
        はぐコメ Range("はぐれコメント3"), Gname & "はそのばにたおれこみ", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント1"), "からだにちからがはいらない", 2, 1
        はぐコメ Range("はぐれコメント2"), Gname & "はそのばにたおれこみ", 2, 1
        はぐコメ Range("はぐれコメント3"), "そのままちからつきてしまった", 2, 1
        Sleep 1000
        はぐコメ Range("はぐれコメント1"), Gname & "はそのばにたおれこみ", 2, 1
        はぐコメ Range("はぐれコメント2"), "そのままちからつきてしまった", 2, 1
        はぐコメ Range("はぐれコメント3"), "Ｇａｍｅ　Ｏｖｅｒ", 3, 2
        Time = 2
    End If
End Sub
```
1. はぐれメタルからは逃げられない
2. 先にマダンテで瀕死のダメージを受けていると、にげようとして力尽きる「GAME OVER」。 

```vb:Sheet(はぐれメタル)
Private Sub Worksheet_Deactivate()
    ActiveSheet.Protect Mypass
    Worksheets("はぐれメタル").Visible = False
End Sub
```
1. はぐれメタルシートを離れるとき、ロックして非表示にする。

## ドット絵
![スライムドット絵.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683664/a10ef74d-908d-cc3a-64ce-1305af9fa092.png)

![はぐれドット絵.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683664/3aae5662-22b5-a7bf-dff8-06ebe5d5feeb.png)

![まおうドット絵.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/683664/ab105c87-f313-85f3-0940-0c45209b277d.png)

1. スライム1、はぐれ2、まおう3などは、そのドット絵のセル範囲のこと。
2. このセル範囲名を使って画像をコピペしている。 
3. まおうのモデルはデスタムーア第三形態 (両手なし)。

## 動作確認
### VBA
各動作の確認用。

```vb:動作確認(標準モジュール)
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
Sub スラ_ギガデイン()
    フィールドコピー Range("スライム11"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム12"), Range("確認 ")
    Sleep 1000
    フィールドコピー Range("スライム13"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム14"), Range("確認")
End Sub
Sub スラ_しゃくねつ()
    フィールドコピー Range("スライム3"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム9"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム10"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム8"), Range("確認")
End Sub
Sub スラ_悪くないのに()
    フィールドコピー Range("スライム1"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム2"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム4"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム15"), Range("確認")
End Sub
Sub はぐ_ギガデイン()
    フィールドコピー Range("はぐれ4"), Range("確認")
    Sleep 1000
    フィールドコピー Range("はぐれ5"), Range("確認")
    Sleep 1000
    フィールドコピー Range("はぐれ6"), Range("確認")
    Sleep 1000
    フィールドコピー Range("はぐれ7"), Range("確認")
End Sub
Sub はぐ_マダンテ()
    フィールドコピー Range("はぐれ3"), Range("確認")
    Sleep 1000
    フィールドコピー Range("はぐれ8"), Range("確認")
    Sleep 1000
    フィールドコピー Range("はぐれ9"), Range("確認")
End Sub
Sub はぐ_表情()
    フィールドコピー Range("はぐれ1"), Range("確認")
    Sleep 1000
    フィールドコピー Range("はぐれ11"), Range("確認")
    Sleep 1000
    フィールドコピー Range("はぐれ10"), Range("確認")
End Sub
Sub まおう登場()
    フィールドコピー Range("はぐれ2"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう2"), Range("確認 ")
    Sleep 1000
    フィールドコピー Range("まおう3"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう1"), Range("確認")
End Sub
Sub まおう_メラガイアー()
    フィールドコピー Range("まおう1"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう4"), Range("確認 ")
    Sleep 1000
    フィールドコピー Range("まおう5"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう6"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう7"), Range("確認")
End Sub
Sub まおう_メドローア()
    フィールドコピー Range("まおう1"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう8"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう9"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう10"), Range("確認 ")
    Sleep 1000
    フィールドコピー Range("まおう11"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう12"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう13"), Range("確認")
End Sub
Sub まおう_マダンテ()
    フィールドコピー Range("まおう1"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう14"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう15"), Range("確認")
    Sleep 1000
    フィールドコピー Range("まおう16"), Range("確認")
End Sub
Sub にげてはいけません()
    フィールドコピー Range("スライム1"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム2"), Range("確認 ")
    Sleep 1000
    フィールドコピー Range("スライム6"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム7"), Range("確認")
    Sleep 1000
    フィールドコピー Range("スライム5"), Range("確認")
End Sub
```
1. 処理を個別で確認できる。

```vb:基本設定(標準モジュール)
Sub 戻る()
    Worksheets("ゲームスタート").Visible = True
    Worksheets("ゲームスタート").Select
    ActiveSheet.Unprotect Mypass
End Sub
```
1. ゲームスタート画面に戻る。

## 参考資料
[VBAで指定した秒数だけ処理を止める方法【Sleep関数(API)】｜CATIAマクロの作成方法](https://liclog.net/sleep-function-vba-macro-catia-v5/)